XLog::Multi - XLog backend for logging into multiple backends
my $multi = XLog::Multi->new([ {logger => XLog::Console->new, min_level => XLog::INFO}, {logger => XLog::File->new({file => "all.log"}), min_level => XLog::DEBUG, formatter => XLog::Formatter::Pattern->new("[%L] %t: %m")}, {logger => XLog::File->new({file => "error.log"}), min_level => XLog::WARNING, formatter => "[%L] %t: %m"}, ]); XLog::set_logger($multi);
XLog::Multi allows to log into multiple backends with different levels and formatters.
Creates multi backend from arrayref of backends and params. Each element on the list must be a hashref with the following info:
Backend object
Minimum log level for this backend. Please note that messages might not be logged even if their level higher than this param - in case if the main min level (XLog::set_level) is higher. For example:
XLog::set_level(XLog::WARNING); # main min level my $multi = XLog::Multi->new([ {logger => XLog::Console->new, min_level => XLog::INFO}, {logger => XLog::File->new({file => "error.log"}), min_level => XLog::WARNING}, ]); XLog::set_logger($multi); XLog::info("hi"); # this message will not be logged XLog::set_level(XLog::DEBUG); XLog::info("hi"); # this message will be logged on console XLog::warning("hi"); # this message will be logged both on console and to file
Also note, that log message evaluation optimization is only on when message level is lower than main min level. Otherwise, if message level is greater than or equal to main log level, it will be evaluated anyway. Even if all min levels in Multi backend are greater than the message level. For example
XLog::set_level(XLog::DEBUG); my $multi = XLog::Multi->new([ {logger => XLog::Console->new, min_level => XLog::WARNING}, ]); XLog::set_logger($multi); XLog::debug("hi $longmess");
$longmess in this example will be interpolated but will not be logged. This is due to current limitations in optimization system.
$longmess
Formatter object/sub/string for this backend. If no formatter is specified, will use main formatter (from module, its parents up to main XLog::set_formatter).
formatter
To install XLog, copy and paste the appropriate command in to your terminal.
cpanm
cpanm XLog
CPAN shell
perl -MCPAN -e shell install XLog
For more information on module installation, please visit the detailed CPAN module installation guide.