--- lib/Log/Log4perl.pm.orig 2008-01-24 18:20:30.319775285 -0500 +++ lib/Log/Log4perl.pm 2008-01-25 16:51:51.220863874 -0500 @@ -2329,7 +2329,7 @@
=head1 Using Log::Log4perl from wrapper classes -If you don't use C<Log::Log4perl> as described above, +If you don't use C<Log::Log4perl> as described above, but from a wrapper class (like your own Logging class which in turn uses C<Log::Log4perl>), the pattern layout will generate wrong data for %F, %C, %L and the like. @@ -2338,11 +2338,25 @@ one (or more) wrapper classes, C<Log::Log4perl> will indicate where your logger classes called the loggers, not where your application called your wrapper, which is probably what you want in this case. -But don't dispair, there's a solution: Just increase the value + +But don't despair, there's a solution: Just increase the value of C<$Log::Log4perl::caller_depth> (defaults to 0) by one for every wrapper that's in between your application and C<Log::Log4perl>, then C<Log::Log4perl> will compensate for the difference. +Using a local variable avoids problems with anyone who +uses Log4perl directly; using ||= allows people to wrap +YOUR wrappers without accidentally resetting the value +too low. + + sub debug + { + local $Log::Log4perl::caller_depth ||= 1; + + ... + } + + =head1 Access to Internals The following methods are only of use if you want to peek/poke in ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ log4perl-devel mailing list log4perl-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/log4perl-devel