Changes for version 0.42

  • (kg) added filters to XML DOMConfig and DTD
  • (ms) Fixed caller level to cspecs by adding one
  • (ms) Added init_once() and documentation
  • (ms) Worked around the perl bug that triggers __DIE__ handlers even if die() occurs within an eval(). So if you did BEGIN { $SIG{__DIE__} = sub { print "ouch!"; die }; } use Log::Log4perl; and Time::HiRes wasn't available, the eval { require Time::HiRes } in PatternLayout.pm triggered the __DIE__ handler. Now there's a function module_available() in L4p::Util to check if a module is installed.
  • (ms) Fixed %M cspec in PatternLayout in case a logging method is called within one (or more) eval {} block(s). caller(n+m) will be called repeatedly if necessary to get the next real subroutine. Anonymous subroutines will still be called __ANON__, but this can be overridden by defining local *__ANON__ = "subroutine_name"; in them explicitely (thanks, Perlmonks :).

Modules

Log4j implementation for Perl
Log appender class
implements appending to a DB
Log to STDOUT/STDERR
Synchronizing other appenders
Subclass of Appender::TestBuffer
Appender class for testing
Intentionally slow test appender
Log4perl configuration file syntax
Detect file changes
Log4perl advanced date formatter helper class
Frequently Asked Questions on Log::Log4perl
Log4perl Custom Filter Base Class
Special filter to combine the results of others
Filter to match the log level exactly
Filter for a range of log levels
Filter to match the log level exactly
maps java log4j appenders to Log::Dispatch classes
wraps Log::Dispatch::Screen
wraps Log::Dispatch::File
wraps Log::Log4perl::Appender::DBI
wraps Log::Dispatch::Win32EventLog
wraps Log::Dispatch::FileRotate
wraps Log::Dispatch::Syslog
wraps Log::Log4perl::Appender::TestBuffer
Log4perl Layout Virtual Base Class
Predefined log levels
Main Logger Class
Mapped Diagnostic Context
Nested Diagnostic Context
Internal utility functions