Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: combine logentries with Log::log4perl

by Anonymous Monk
on Sep 03, 2015 at 10:38 UTC ( #1140869=note: print w/replies, xml ) Need Help??


in reply to Re: combine logentries with Log::log4perl
in thread combine logentries with Log::log4perl

sure, that's just a simplification but it shows
the same strange symptoms:

use Log::Log4perl qw(:easy); $conf = <<EOT; log4perl.rootLogger = DEBUG, Log1 log4perl.appender.Log1 = Log::Log4perl::Appender::File log4perl.appender.Log1.filename = /tmp/test.log log4perl.appender.Log1.mode = append log4perl.appender.Log1.layout = Log::Log4perl::Layout::SimpleLayout log4perl.appender.Log1.Threshold = INFO log4perl.logger = TRACE, Log2 log4perl.appender.Log2 = Log::Log4perl::Appender::ScreenColoredLevels log4perl.appender.Log2.layout = Log::Log4perl::Layout::PatternLayout log4perl.appender.Log2.layout.ConversionPattern = %m%n log4perl.category = DEBUG, Buffer log4perl.appender.Buffer = Log::Log4perl::Appender::Buffer log4perl.appender.Buffer.appender = Log1 log4perl.appender.Buffer.trigger_level = ERROR EOT Log::Log4perl->init(\$conf); TRACE("message #1 (screen only)"); INFO("message #2"); INFO("message #3"); sleep(10); ERROR("message #4");

when i run this, i get on screen:

message #2 message #3 message #4

and in the file:

INFO - message #2 INFO - message #3 INFO - message #2 INFO - message #3 ERROR - message #4 ERROR - message #4

the first two lines of the log file appear at the same time like the ones on the screen. the first line (message #1) to the screen appender just disappears but in the log file message #2, #3 & #4 get doubled when the ERROR trigger got hit.

very odd behaviour. didn't match my expectations.

greetings

Replies are listed 'Best First'.
Re^3: combine logentries with Log::log4perl
by SimonPratt (Friar) on Sep 03, 2015 at 12:03 UTC

    You appear to be attempting to log to multiple places, hence all the double ups (and probably the cause of stuff not appearing on screen as expected). Try this:

    use strict; use warnings; use Log::Log4perl qw(:easy); my $conf = <<EOT; log4perl.rootLogger = DEBUG, Log1 log4perl.appender.Log1 = Log::Log4perl::Appender::File log4perl.appender.Log1.filename = /tmp/test.log log4perl.appender.Log1.mode = append log4perl.appender.Log1.layout = Log::Log4perl::Layout::SimpleLayout log4perl.appender.Log1.Threshold = INFO log4perl.logger = TRACE, Log2 log4perl.appender.Log2 = Log::Log4perl::Appender::ScreenColoredLevels log4perl.appender.Log2.layout = Log::Log4perl::Layout::PatternLayout log4perl.appender.Log2.layout.ConversionPattern = %m%n log4perl.category = TRACE, Buffer log4perl.appender.Buffer = Log::Log4perl::Appender::Buffer log4perl.appender.Buffer.appender = Log1 log4perl.appender.Buffer.trigger_level = ERROR EOT Log::Log4perl->init(\$conf); TRACE("message #1 (screen only)"); INFO("message #2"); INFO("message #3"); sleep(10); ERROR("message #4");

    EDIT: You've set the buffer to intercept all messages and only allow DEBUG and higher through. Thats why your onscreen TRACE message disappears. Still looking into the doubling up thing.

    Oh, and I've updated my source - This gets the screen to display correctly, but everything is still doubled in the file.

Re^3: combine logentries with Log::log4perl
by shadowsong (Pilgrim) on Sep 03, 2015 at 14:16 UTC

    Change this line

    log4perl.rootLogger = DEBUG, Log1

    To this:

    log4perl.rootLogger = DEBUG, Buffer

    And... you can remove this line if you'd like the TRACE category to show up on STDOUT

    log4perl.category = DEBUG, Buffer

    Let us know if that matches your expectations? Although deep down I think you'll find you may have to write a custom composite function if you'd like to get a deeper level of customization..

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1140869]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (3)
As of 2019-10-21 02:13 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Notices?