Default logging driver for log::agent
# Implicit use use Log::Agent; logconfig(-prefix => "prefix"); # optional # Explicit use use Log::Agent; require Log::Agent::Driver::Default; my $driver = Log::Agent::Driver::Default->make("prefix"); logconfig(-driver => $driver);
The default logging driver remaps the logxxx() operations to their default Perl counterpart. For instance, logerr() will issue a warn() and logwarn() will call warn() with a clear \*(L"\s-1WARNING:\s0 \*(R" emphasis (to distinguish between the two calls).
The only routine of interest here is the creation routine:
Create a Log::Agent::Driver::Default driver whose prefix string will be $prefix. When no prefix is configured, the first letter of each logged string will be uppercased.
The \*(C`error\*(C', \*(C`output\*(C' and \*(C`debug\*(C' channels all go to \s-1STDERR\s0.
If logdie() is used within an eval(), the string you will get in $@ will be prefixed. It's not really a bug, simply that wrapping a code into eval() and parsing $@ is poor's man exception handling which shows its limit here: since the programmer using logdie() cannot foresee which driver will be used, the returned string cannot be determined precisely. Morality: use die() if you mean it, and document the string as an exception.
Raphael Manfredi <[email protected]>
Log::Agent::Driver\|(3), Log::Agent\|(3).