[Catalyst] Catalyst::Log::Log4perl branch
Michael Reece
mreece at vinq.com
Fri Mar 2 19:52:44 GMT 2007
this brings up an interesting difference in side-effects of
Catalyst::Log->error() and Log::Log4perl->error().
in the course of trying to integrate catalyst logging with other
existing Log4Perl loggers in the codebase, i had tried first setting
catalyst's logger to be the global logger,
$c->log($one_true_logger);
but ran into issues like those you are trying to solve.
so i tried an alternate approach,
$one_true_logger = $c->log;
but i have existing code that relies on the side-effect of
$log4perl_logger->error() [and friends] returning undef,
return $one_true_logger->error('oops'); # logs and returns false
but Catalyst::Log::_log ends with (and thus returns)
$self->{body} .= sprintf( "[%s] %s", $level, $message );
is there any reason not to patch Catalyst::Log::_log to 'return;'
after appending $self->{body}?
(or perhaps better in the method generation,
*{$name} = sub {
my $self = shift;
if ( $self->{level} & $level ) {
$self->_log( $name, @_ );
}
+ return;
};
so the false RV is reliable even if level is too low.
On Mar 2, 2007, at 11:26 AM, Adam Jacob wrote:
> Several people have pointed out that various parts of Log::Log4perl
> don't work well with Catalyst. Specifically, many of the options
> that rely on Stack information are incorrect. The format strings:
>
> %L Line number within the file where the log statement was issued
> %F File where the logging event occurred
> %C Fully qualified package (or class) name of the caller
> %M Method or function where the logging request was issued
> %l Fully qualified name of the calling method followed by the
> callers source the file name and line number between parentheses.
>
> Sebastian Willert has helpfully provided a patch that should
> resolve these issues. He rules. His changes have been put on this
> branch:
>
> http://dev.catalyst.perl.org/repos/Catalyst/branches/Catalyst-Log-
> Log4perl/cspec-fixes
>
> I'm going to be pretty busy for the next few days, but don't want
> to sit on this any longer. Can those of you using
> Catalyst::Log::Log4perl give this a whirl, and make sure it works
> with your applications? (And doesn't cause any kind of nasty
> performance implications, especially with the cspec fixes disabled?)
>
> Your rewards will be my enduring gratitude, and a better
> Catalyst::Log::Log4perl.
>
> Thanks!
>
> Adam
>
> _______________________________________________
> List: Catalyst at lists.rawmode.org
> Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/
> catalyst at lists.rawmode.org/
> Dev site: http://dev.catalyst.perl.org/
More information about the Catalyst
mailing list