- (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 :).