Bugzilla – Attachment 42039 Details for
Bug 14746
Set up logging and configuration file reading for Mojolicious
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 14746: Set up logging and configuration file reading for Mojolicious
Bug-14746-Set-up-logging-and-configuration-file-re.patch (text/plain), 5.22 KB, created by
Julian Maurice
on 2015-08-27 17:00:13 UTC
(
hide
)
Description:
Bug 14746: Set up logging and configuration file reading for Mojolicious
Filename:
MIME Type:
Creator:
Julian Maurice
Created:
2015-08-27 17:00:13 UTC
Size:
5.22 KB
patch
obsolete
>From c8518d9d6cffc1e2b2c4895865e0087148a117c9 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 14746: 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 | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 83 insertions(+) > >diff --git a/Koha/REST/V1.pm b/Koha/REST/V1.pm >index 39cdab9..746910a 100644 >--- a/Koha/REST/V1.pm >+++ b/Koha/REST/V1.pm >@@ -2,10 +2,62 @@ 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 >+ >+If you don't want to use any config files, disable the alert notifications ny setting the >+MOJO_CONFIG-environment variable to undef. >+ >+=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 >+ >+If you want to get log output to STDOUT and STDERR normally, disable the alert notifications by setting the >+MOJO_LOGFILES-environment variable to undef. >+ >+=cut > > sub startup { > my $self = shift; > >+ $self->setKohaParamLogging(); >+ $self->setKohaParamConfig(); >+ > my $route = $self->routes->under->to( > cb => sub { > my $c = shift; >@@ -25,4 +77,35 @@ sub startup { > }); > } > >+sub setKohaParamConfig { >+ my $self = shift; >+ #Enable the config-plugin. Loads the config file from $ENV{MOJO_CONFIG} by default. >+ if ($ENV{MOJO_CONFIG}) { >+ $self->plugin('Config'); >+ } >+ elsif (exists($ENV{MOJO_CONFIG})) { >+ #Don't complain. >+ } >+ else { >+ print __PACKAGE__."::startup():> No config-file loaded. Define your config-file to the MOJO_CONFIG environmental variable. If you don't want to use a specific config-file, set the MOJO_CONFIG to undef.\n"; >+ } >+} >+ >+sub setKohaParamLogging { >+ 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".$!; >+ } >+ #Stop complaining about missing logging config >+ if (exists($ENV{MOJO_LOGFILES})) { >+ $self->app->log(); >+ } >+ else { >+ $self->app->log(); #Default to STDERR >+ print __PACKAGE__."::startup():> No logfile given, defaulting to STDERR. Define your logfile and loglevel to the MOJO_LOGFILES and MOJO_LOGLEVEL environmental variables. If you want foreground logging, set the MOJO_LOGFILES as undef.\n"; >+ } >+} > 1; >-- >1.9.1
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 14746
: 42039