From 227e934901d9076cbbf865cdd415816b05430900 Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Fri, 18 Dec 2015 13:18:12 +0000 Subject: [PATCH] Bug 15253 - Log stderr via Koha::Logger as well By logging stderr to the log file, we can much more easily find and debug errors in the SIP server. Stderr has its own category STDERR so these messages can easily be filtered out of the log if need be. --- C4/SIP/SIPServer.pm | 3 ++- C4/SIP/Trapper.pm | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 C4/SIP/Trapper.pm diff --git a/C4/SIP/SIPServer.pm b/C4/SIP/SIPServer.pm index c552a68..14d3d07 100755 --- a/C4/SIP/SIPServer.pm +++ b/C4/SIP/SIPServer.pm @@ -6,7 +6,6 @@ use warnings; use FindBin qw($Bin); use lib "$Bin"; use Sys::Syslog qw(syslog); -use Koha::Logger; use Net::Server::PreFork; use IO::Socket::INET; use Socket qw(:DEFAULT :crlf); @@ -19,6 +18,8 @@ use C4::SIP::Sip::MsgType qw( handle login_core ); use C4::SIP::Sip qw( read_SIP_packet ); use Koha::Logger; +use C4::SIP::Trapper; +tie *STDERR, "C4::SIP::Trapper"; use base qw(Net::Server::PreFork); diff --git a/C4/SIP/Trapper.pm b/C4/SIP/Trapper.pm new file mode 100644 index 0000000..0a2b872 --- /dev/null +++ b/C4/SIP/Trapper.pm @@ -0,0 +1,21 @@ +package C4::SIP::Trapper; + +use Modern::Perl; + +use Koha::Logger; + +sub TIEHANDLE { + my $class = shift; + bless [], $class; +} + +sub PRINT { + my $self = shift; + $Log::Log4perl::caller_depth++; + my $logger = Koha::Logger->get({ interface => 'sip', category => 'STDERR' }); + warn @_; + $logger->error(@_); + $Log::Log4perl::caller_depth--; +} + +1; -- 1.7.10.4