On 14.10.2008, at 20:22, todd.e.rinaldo wrote: > Hi, > > I often have a helper routine in my code that logs an event and then > does stuff. In some cases, it would be helpful if the line number that > is logged was one level up from where I call debug. > > My question: does functionality exist in l4p similar to Test::More > that would allow me to log events from higher in the stack than where > I called debug? > > Test::More method: > local $Test::Builder::Level++;
I don't think you can modify the behavior of %L, and hence SimpleLayout in this way. If you're ready to define your own layout, the feature can be added via a custom placeholder (%A below). See the appended code for a way to do it. Anno ---------------------------------------------------------------------- use Log::Log4perl qw(get_logger); Log::Log4perl::init(\ *DATA); log_this("here line " . __LINE__); # show real line number in log message log_this("here line " . __LINE__); # again, one line down exit; sub log_this { get_logger()->info(shift); # %L will be this line number, %A won't } # helper sub for custom placeholder %A sub line_one_above { my $i = 1; # skip bottom level (main) ++ $i while caller($i) =~ /^Log::Log4perl/; # climb to user spoace ++ $i; # one more (!) (caller($i))[2]; # return line number } __DATA__ log4perl.rootLogger=INFO, screen_root log4perl.appender.screen_root=Log::Log4perl::Appender::Screen log4perl.appender.screen_root.layout=PatternLayout log4perl.appender.screen_root.layout.ConversionPattern=%m at line %A (L=%L)%n log4perl.PatternLayout.cspec.A = sub { line_one_above() } ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ log4perl-devel mailing list log4perl-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/log4perl-devel