Re: [log4perl-devel] logwarn not calling warn if L::L's init not called

2011-11-21 Thread Martin J. Evans
On 21/11/11 04:46, Mike Schilli wrote:
 On Tue, 1 Nov 2011, Martin J. Evans wrote:

 So substituting warn with logwarn does not always warn!

 That's an interesting case. The way it's implemented right now is that
 logwarn() will only call warn() (along with other log4perl actions) if
 the log level is greater or equal than WARN.

 logdie(), on the other hand, will call die() unconditionally, because
 it's an action, not only a message.

 -- -- Mike

So simply substituting warn with logwarn can change the way your program works. 
It is not for me to tell you how Log::Log4perl should work but I find this 
behaviour unacceptable as my program will behave differently depending on the 
log level. Logging should be logging, not changing the way my program runs.

Example:

$ perl -le '$SIG{__WARN__} = sub {CORE::die Warning:\n, @_, \n}; use 
Log::Log4perl qw(get_logger); my $lh = 
get_logger(BET::Data::Remove);warn(fred); print ok;'
Warning:
fred at -e line 1.

Change the warn to logwarn:

$ perl -le '$SIG{__WARN__} = sub {CORE::die Warning:\n, @_, \n}; use 
Log::Log4perl qw(get_logger); my $lh = 
get_logger(BET::Data::Remove);$lh-logwarn(fred); print ok;
ok

Would you consider changing this? If not, I would be most grateful if you could 
you point me at the place where I could change this behaviour or tell my how I 
could override it.

Martin

 Hi,

 Is this really the intended behaviour:

 perl -w -le 'use strict;use warnings;use Log::Log4perl qw(get_logger); my 
 $lh = get_logger(BET::Data::Remove); 
 $lh-debug(fred);$lh-logwarn(warning from l:l); warn(warning);'

 Log4perl: Seems like no initialization happened. Forgot to call init()?
 warning at -e line 1.

 i.e., if something does not call init for Log::Log4perl but has a log handle 
 when logwarn is called a warn does not happen?



 I spent some time debugging a problem this morning only to discover this. I 
 find this most worrying as I'd expect the warn to happen whatever. If you 
 substitute logdie for die it seems to work.

 perl -MLog::Log4perl -le 'print $Log::Log4perl::VERSION;'
 1.33
 This is perl, v5.10.1 (*) built for i686-linux-gnu-thread-multi

 Martin



-- 
Martin J. Evans
Easysoft Limited
http://www.easysoft.com

--
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
___
log4perl-devel mailing list
log4perl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/log4perl-devel


[log4perl-devel] logwarn not calling warn if L::L's init not called

2011-11-17 Thread Martin J. Evans
Hi,

Is this really the intended behaviour:

perl -w -le 'use strict;use warnings;use Log::Log4perl qw(get_logger); my $lh = 
get_logger(BET::Data::Remove); $lh-debug(fred);$lh-logwarn(warning from 
l:l); warn(warning);'

Log4perl: Seems like no initialization happened. Forgot to call init()?
warning at -e line 1.

i.e., if something does not call init for Log::Log4perl but has a log handle 
when logwarn is called a warn does not happen?

So substituting warn with logwarn does not always warn!

I spent some time debugging a problem this morning only to discover this. I 
find this most worrying as I'd expect the warn to happen whatever. If you 
substitute logdie for die it seems to work.

perl -MLog::Log4perl -le 'print $Log::Log4perl::VERSION;'
1.33
This is perl, v5.10.1 (*) built for i686-linux-gnu-thread-multi

Martin
-- 
Martin J. Evans
Easysoft Limited
http://www.easysoft.com

--
All the data continuously generated in your IT infrastructure 
contains a definitive record of customers, application performance, 
security threats, fraudulent activity, and more. Splunk takes this 
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
___
log4perl-devel mailing list
log4perl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/log4perl-devel