View | Details | Raw Unified | Return to bug 25464
Collapse All | Expand All

(-)a/C4/SIP/SIPServer.pm (+7 lines)
Lines 106-111 sub process_request { Link Here
106
    $self->{account} = undef;  # Clear out the account from the last request, it may be different
106
    $self->{account} = undef;  # Clear out the account from the last request, it may be different
107
    $self->{logger} = set_logger( Koha::Logger->get( { interface => 'sip' } ) );
107
    $self->{logger} = set_logger( Koha::Logger->get( { interface => 'sip' } ) );
108
108
109
    # Flush previous MDCs to prevent accidentally leaking incorrect MDC-entries
110
    Koha::Logger->clear_mdc();
111
109
    my $sockname = getsockname(STDIN);
112
    my $sockname = getsockname(STDIN);
110
113
111
    # Check if socket connection is IPv6 before resolving address
114
    # Check if socket connection is IPv6 before resolving address
Lines 180-185 sub raw_transport { Link Here
180
        )
183
        )
181
    );
184
    );
182
185
186
    # Set MDCs after properly authenticating
187
    Koha::Logger->put_mdc( "accountid", $self->{account}->{id} );
188
    Koha::Logger->put_mdc( "peeraddr",  $self->{server}->{peeraddr} );
189
183
    siplog("LOG_DEBUG", "raw_transport: uname/inst: '%s/%s'",
190
    siplog("LOG_DEBUG", "raw_transport: uname/inst: '%s/%s'",
184
        $self->{account}->{id},
191
        $self->{account}->{id},
185
        $self->{account}->{institution});
192
        $self->{account}->{institution});
(-)a/Koha/Logger.pm (+43 lines)
Lines 70-75 sub get { Link Here
70
    return $self;
70
    return $self;
71
}
71
}
72
72
73
=head2 put_mdc
74
75
my $foo = $logger->put_mdc('foo', $foo );
76
77
put_mdc sets global thread specific data that can be access later when generating log lines
78
via the "%X{key}" placeholder in Log::Log4perl::Layout::PatternLayouts.
79
80
=cut
81
82
sub put_mdc {
83
    my ( $self, $key, $value ) = @_;
84
85
    Log::Log4perl::MDC->put( $key, $value );
86
}
87
88
=head2 get_mdc
89
90
my $foo = $logger->get_mdc('foo');
91
92
Retrieves the stored mdc value from the stored map.
93
94
=cut
95
96
sub get_mdc {
97
    my ( $self, $key ) = @_;
98
99
    return Log::Log4perl::MDC->get( $key );
100
}
101
102
=head2 clear_mdc
103
104
$logger->clear_mdc();
105
106
Removes *all* stored key/value pairs from the MDC map.
107
108
=cut
109
110
sub clear_mdc {
111
    my ( $self, $key ) = @_;
112
113
    return Log::Log4perl::MDC->remove( $key );
114
}
115
73
=head1 INTERNALS
116
=head1 INTERNALS
74
117
75
=head2 AUTOLOAD
118
=head2 AUTOLOAD
(-)a/debian/koha-common.postinst (-1 / +1 lines)
Lines 182-188 log4perl.appender.SIP=Log::Log4perl::Appender::File Link Here
182
log4perl.appender.SIP.filename=/var/log/koha/$site/sip.log
182
log4perl.appender.SIP.filename=/var/log/koha/$site/sip.log
183
log4perl.appender.SIP.mode=append
183
log4perl.appender.SIP.mode=append
184
log4perl.appender.SIP.layout=PatternLayout
184
log4perl.appender.SIP.layout=PatternLayout
185
log4perl.appender.SIP.layout.ConversionPattern=[%d] [%P] [%p] %m %l %n
185
log4perl.appender.SIP.layout.ConversionPattern=[%d] [%P] [%p] %X{accountid}@%X{peeraddr}: %m %l %n
186
log4perl.appender.SIP.utf8=1
186
log4perl.appender.SIP.utf8=1
187
187
188
EOF
188
EOF
(-)a/debian/templates/log4perl-site.conf.in (-1 / +1 lines)
Lines 35-41 log4perl.appender.SIP=Log::Log4perl::Appender::File Link Here
35
log4perl.appender.SIP.filename=__LOG_DIR__/sip.log
35
log4perl.appender.SIP.filename=__LOG_DIR__/sip.log
36
log4perl.appender.SIP.mode=append
36
log4perl.appender.SIP.mode=append
37
log4perl.appender.SIP.layout=PatternLayout
37
log4perl.appender.SIP.layout=PatternLayout
38
log4perl.appender.SIP.layout.ConversionPattern=[%d] [%P] [%p] %m %l %n
38
log4perl.appender.SIP.layout.ConversionPattern=[%d] [%P] [%p] %X{accountid}@%X{peeraddr}: %m %l %n
39
log4perl.appender.SIP.utf8=1
39
log4perl.appender.SIP.utf8=1
40
40
41
41
(-)a/etc/log4perl.conf (-1 / +1 lines)
Lines 35-41 log4perl.appender.SIP=Log::Log4perl::Appender::File Link Here
35
log4perl.appender.SIP.filename=__LOG_DIR__/sip.log
35
log4perl.appender.SIP.filename=__LOG_DIR__/sip.log
36
log4perl.appender.SIP.mode=append
36
log4perl.appender.SIP.mode=append
37
log4perl.appender.SIP.layout=PatternLayout
37
log4perl.appender.SIP.layout=PatternLayout
38
log4perl.appender.SIP.layout.ConversionPattern=[%d] [%P] [%p] %m %l %n
38
log4perl.appender.SIP.layout.ConversionPattern=[%d] [%P] [%p] %X{accountid}@%X{peeraddr}: %m %l %n
39
log4perl.appender.SIP.utf8=1
39
log4perl.appender.SIP.utf8=1
40
40
41
log4perl.logger.plack-opac = WARN, PLACKOPAC
41
log4perl.logger.plack-opac = WARN, PLACKOPAC
(-)a/t/Logger.t (-3 / +13 lines)
Lines 26-32 use Test::More tests => 1; Link Here
26
use Test::Warn;
26
use Test::Warn;
27
27
28
subtest 'Test01 -- Simple tests for Koha::Logger' => sub {
28
subtest 'Test01 -- Simple tests for Koha::Logger' => sub {
29
    plan tests => 6;
29
    plan tests => 10;
30
30
31
    my $ret;
31
    my $ret;
32
    t::lib::Mocks::mock_config('log4perl_conf', undef);
32
    t::lib::Mocks::mock_config('log4perl_conf', undef);
Lines 52-58 HERE Link Here
52
    ok( $@, 'Logger did not init correctly without permission');
52
    ok( $@, 'Logger did not init correctly without permission');
53
53
54
    system("chmod 700 $log");
54
    system("chmod 700 $log");
55
    my $logger= Koha::Logger->get({ interface => 'intranet' });
55
    my $logger = Koha::Logger->get( { interface => 'intranet' } );
56
    is( exists $logger->{logger}, 1, 'Log4perl config found');
56
    is( exists $logger->{logger}, 1, 'Log4perl config found');
57
    is( $logger->warn('Message 1'), 1, '->warn returned a value' );
57
    is( $logger->warn('Message 1'), 1, '->warn returned a value' );
58
    warning_is { $ret = $logger->catastrophe }
58
    warning_is { $ret = $logger->catastrophe }
Lines 60-65 HERE Link Here
60
               "Undefined method raises warning";
60
               "Undefined method raises warning";
61
    is( $ret, undef, "'catastrophe' method undefined");
61
    is( $ret, undef, "'catastrophe' method undefined");
62
62
63
    Koha::Logger->put_mdc( 'foo', 'bar' );
64
    is( Koha::Logger->get_mdc( 'foo' ), 'bar', "MDC value via put_mdc is correct" );
65
66
    Koha::Logger->put_mdc( 'foo', undef );
67
    is( Koha::Logger->get_mdc( 'foo' ), undef, "Updated MDC value to undefined via put_mdc is correct" );
68
69
    Koha::Logger->put_mdc( 'foo', 'baz' );
70
    is( Koha::Logger->get_mdc( 'foo' ), 'baz', "Updated MDC value via put_mdc is correct" );
71
72
    Koha::Logger->clear_mdc();
73
    is( Koha::Logger->get_mdc( 'foo' ), undef, "MDC value was cleared by clear_mdc" );
63
};
74
};
64
75
65
sub mytempfile {
76
sub mytempfile {
66
- 

Return to bug 25464