Bugzilla – Attachment 40585 Details for
Bug 13799
Add base for building RESTful API
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 13799 - 2. Set up logging and configuration file reading for Mojolicious.
Bug-13799---2-Set-up-logging-and-configuration-fil.patch (text/plain), 4.38 KB, created by
Olli-Antti Kivilahti
on 2015-06-24 15:08:59 UTC
(
hide
)
Description:
Bug 13799 - 2. Set up logging and configuration file reading for Mojolicious.
Filename:
MIME Type:
Creator:
Olli-Antti Kivilahti
Created:
2015-06-24 15:08:59 UTC
Size:
4.38 KB
patch
obsolete
>From f6225fae78d2ca91a18ca86deae51e55e14dbb72 Mon Sep 17 00:00:00 2001 >From: Olli-Antti Kivilahti <olli-antti.kivilahti@jns.fi> >Date: Thu, 11 Jun 2015 17:48:54 +0300 >Subject: [PATCH] Bug 13799 - 2. Set up logging and configuration file reading > for Mojolicious. > >Use environmental values to control some aspects of Mojolicious: >This way we can have different settings for different servers running Mojolicious. > >%%%% Configuration file %%%% > >$ENV{MOJO_CONFIG} should be set in the system service (init) starting Mojolicious, eg: >export MOJO_CONFIG=/home/koha/kohaclone/api/v1/hypnotoad.conf > >This configuration file read by the Mojolicious::Plugin::Config >http://mojolicio.us/perldoc/Mojolicious/Plugin/Config > >%%%%% Logging %%%%% > >>NOTE!! >>There is a "feature" in Mojo::Server disabling STDOUT and STDERR, because such errors are not-suited-for-prod~ >>This modification in Mojo::Server disables this and preserves the STD* handles for forked server threads >>in Mojo::Server::daemonize(), comment out the following lines >> >># Close filehandles >># open STDOUT, '>/dev/null'; >># open STDERR, '>&STDOUT'; > >Log to a filename configured in an environemnt variable $ENV{MOJO_LOGFILE} using loglevel $ENV{MOJO_LOGLEVEL}. >Defaults to '/tmp/koha-api.log' and loglevel of 'error' >Examples: >export MOJO_LOGFILE=/home/koha/koha-dev/var/log/kohaapi.mojo.log >export MOJO_LOGLEVEL=debug > >Logging is done by Mojo::Log >http://www.mojolicio.us/perldoc/Mojo/Log >--- > Koha/REST/V1.pm | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 62 insertions(+) > >diff --git a/Koha/REST/V1.pm b/Koha/REST/V1.pm >index 3becf12..089461b 100644 >--- a/Koha/REST/V1.pm >+++ b/Koha/REST/V1.pm >@@ -2,10 +2,72 @@ package Koha::REST::V1; > > use Modern::Perl; > use Mojo::Base 'Mojolicious'; >+use Mojo::Log; >+ >+=head startup >+ >+Starts the Mojolicious application using whatever server is configured. >+ >+Use environmental values to control some aspects of Mojolicious: >+This way we can have different settings for different servers running Mojolicious. >+ >+=head2 Configuration file >+ >+$ENV{MOJO_CONFIG} should be set in the system service (init) starting Mojolicious, eg: >+export MOJO_CONFIG=/home/koha/kohaclone/api/v1/hypnotoad.conf >+ >+This configuration file read by the Mojolicious::Plugin::Config >+http://mojolicio.us/perldoc/Mojolicious/Plugin/Config >+ >+=head2 Logging >+ >+ #NOTE!! >+ #There is a "feature" in Mojo::Server disabling STDOUT and STDERR, because such errors are not-suited-for-production?!? >+ #This modification in Mojo::Server disables this and preserves the STD* handles for forked server threads >+ #in Mojo::Server::daemonize(), comment out the following lines >+ # >+ # # Close filehandles >+ # open STDOUT, '>/dev/null'; >+ # open STDERR, '>&STDOUT'; >+ >+Log to a filename configured in an environment variable $ENV{MOJO_LOGFILES} using loglevel $ENV{MOJO_LOGLEVEL}. >+Actually you get 3 logfiles on $ENV{MOJO_LOGFILES}. >+.log for Mojo::Log >+.stdout for STDOUT >+.stderr for STDERR >+ >+Defaults to STDERR and loglevel of 'error' >+Examples: >+export MOJO_LOGFILES=/home/koha/koha-dev/var/log/kohaapi.mojo >+export MOJO_LOGLEVEL=debug >+ >+Logging is done by Mojo::Log >+http://www.mojolicio.us/perldoc/Mojo/Log >+ >+=cut > > sub startup { > my $self = shift; > >+ #Log to a filename with loglevel configured in environment variables >+ if ($ENV{MOJO_LOGFILES}) { >+ $self->app->log( Mojo::Log->new( path => $ENV{MOJO_LOGFILES}.'.log', level => ($ENV{MOJO_LOGLEVEL} || 'error') ) ); >+ open(STDOUT,'>>',$ENV{MOJO_LOGFILES}.'.stdout') or die __PACKAGE__."::startup():> Couldn't open the STDOUT logfile for appending.\n".$!; >+ open(STDERR,'>>',$ENV{MOJO_LOGFILES}.'.stderr') or die __PACKAGE__."::startup():> Couldn't open the STDERR logfile for appending.\n".$!; >+ } >+ else { >+ $self->app->log(); #Default to STDERR >+ print __PACKAGE__."::startup():> No logfile given, defaulting to STDERR. Define your logfile and loglevel to the MOJO_LOGFILE and MOJO_LOGLEVEL environmental variables.\n"; >+ } >+ >+ #Enable the config-plugin. Loads the config file from $ENV{MOJO_CONFIG} by default. >+ if ($ENV{MOJO_CONFIG}) { >+ $self->plugin('Config'); >+ } >+ else { >+ print __PACKAGE__."::startup():> No config-file loaded. Define your config-file to the MOJO_CONFIG environmental variable.\n"; >+ } >+ > my $route = $self->routes->under->to( > cb => sub { > my $c = shift; >-- >1.7.9.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 13799
:
36700
|
36705
|
36938
|
36941
|
37119
|
37132
|
37172
|
38246
|
39156
|
39158
|
39159
|
39160
|
39161
|
39162
|
39163
|
39164
|
40088
|
40092
|
40093
|
40094
|
40098
|
40099
|
40101
|
40140
|
40141
|
40142
|
40463
|
40464
|
40465
|
40466
|
40467
|
40468
|
40469
|
40470
|
40471
|
40551
|
40552
|
40553
|
40554
|
40560
|
40561
|
40584
|
40585
|
40586
|
40587
|
40616
|
40617
|
40618
|
40619
|
41160
|
41161
|
41162
|
41268
|
41269
|
41270
|
41271
|
41272
|
41273
|
41274
|
41320
|
41321
|
41326
|
41327
|
41328
|
41329
|
41330
|
41331
|
41538
|
41539
|
41540
|
41541
|
41542
|
41543
|
41547
|
41554
|
42044
|
42085
|
42086
|
42123
|
42518
|
42766
|
42768
|
42801
|
42874
|
42875
|
42876
|
42877
|
42878
|
43186
|
43187
|
43189
|
43190
|
43191
|
43192
|
43204
|
43205
|
43206
|
43207
|
43208
|
43209
|
43210
|
43211
|
43212
|
43213
|
43214
|
43980
|
43981
|
43987
|
43989
|
43990
|
43991
|
43992
|
43993
|
43994
|
43995
|
43996
|
43997
|
43998
|
43999
|
44000
|
44001
|
44185
|
44285
|
44313
|
44375
|
44376
|
44377
|
44378
|
44379
|
44380
|
44381
|
44382
|
44383
|
44384
|
44385