@@ -, +, @@ to match your current error logs /path/to/log4perl.conf line in the log file for both the staff and opac sides --- C4/Installer/PerlDependencies.pm | 5 +++ Koha/Logger.pm | 75 ++++++++++++++++++++++++++++++++++++++ etc/koha-conf.xml | 1 + etc/log4perl.conf | 13 +++++++ 4 files changed, 94 insertions(+), 0 deletions(-) create mode 100644 Koha/Logger.pm create mode 100644 etc/log4perl.conf --- a/C4/Installer/PerlDependencies.pm +++ a/C4/Installer/PerlDependencies.pm @@ -737,6 +737,11 @@ our $PERL_DEPS = { 'required' => '0', 'min_ver' => '0.89', }, + 'Log::Log4perl' => { + 'usage' => 'Core', + 'required' => '1', + 'min_ver' => '1.29', + }, }; 1; --- a/Koha/Logger.pm +++ a/Koha/Logger.pm @@ -0,0 +1,75 @@ +package Koha::Logger; + +# Copyright 2015 ByWater Solutions +# kyle@bywatersolutions.com +# +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 3 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +=head1 NAME + +Koha::Log + +=head1 SYNOPSIS + + use Koha::Log; + +=head1 FUNCTIONS + +=cut + +use Modern::Perl; + +use Log::Log4perl; +use Carp; + +use C4::Context; + +BEGIN { + Log::Log4perl->wrapper_register(__PACKAGE__); + + my $conf; + if ( exists $ENV{"LOG4PERL_CONF"} and $ENV{'LOG4PERL_CONF'} and -s $ENV{"LOG4PERL_CONF"} ) { + + # Check for web server level configuration first + $conf = $ENV{"LOG4PERL_CONF"}; + } + else { + # If no web server level config exists, look in the koha conf file for one + $conf = C4::Context->config("log4perl_conf"); + } + + Log::Log4perl->init_once($conf); +} + +sub get { + my ( $class, $category, $interface ) = @_; + + croak("No category passed in!") unless $category; + + $interface ||= C4::Context->interface(); + + return Log::Log4perl->get_logger("$interface.$category"); +} + +=head1 AUTHOR + +Kyle M Hall, Ekyle@bywatersolutions.comE + +=cut + +1; + +__END__ --- a/etc/koha-conf.xml +++ a/etc/koha-conf.xml @@ -114,6 +114,7 @@ __PAZPAR2_TOGGLE_XML_POST__ __ZEBRA_LOCK_DIR__ 1 __KOHA_CONF_DIR__/searchengine/queryparser.yaml + __KOHA_CONF_DIR__/log4perl.conf --- a/etc/log4perl.conf +++ a/etc/log4perl.conf @@ -0,0 +1,13 @@ +log4perl.logger.intranet = WARN, INTRANET +log4perl.appender.INTRANET=Log::Log4perl::Appender::File +log4perl.appender.INTRANET.filename=__LOG_DIR__/intranet-error.log +log4perl.appender.INTRANET.mode=append +log4perl.appender.INTRANET.layout=PatternLayout +log4perl.appender.INTRANET.layout.ConversionPattern=[%d] [%p] %m %l %n + +log4perl.logger.opac = WARN, OPAC +log4perl.appender.OPAC=Log::Log4perl::Appender::File +log4perl.appender.OPAC.filename=__LOG_DIR__/opac-error.log +log4perl.appender.OPAC.mode=append +log4perl.appender.OPAC.layout=PatternLayout +log4perl.appender.OPAC.layout.ConversionPattern=[%d] [%p] %m %l %n --