看看Log::Dispatch
将消息发送到一个或多个输出。
use Log::Dispatch;
# Simple API
#
my $log =
Log::Dispatch->new
( outputs =>
[ [ 'File', min_level => 'debug', filename => 'logfile' ],
[ 'Screen', min_level => 'warning' ],
],
);
$log->info('Blah, blah');
# More verbose API
#
my $log = Log::Dispatch->new();
$log->add( Log::Dispatch::File->new
( name => 'file1',
min_level => 'debug',
filename => 'logfile'
)
);
$log->add( Log::Dispatch::Screen->new
( name => 'screen',
min_level => 'warning',
)
);
$log->log( level => 'info', message => 'Blah, blah' );
my $sub = sub { my %p = @_; return reverse $p{message}; };
my $reversing_dispatcher = Log::Dispatch->new( callbacks => $sub );
它有一些你也应该看看的帮助/实用模块。
Log::Dispatch::DBI - 将输出记录到数据库表中。
Log::Dispatch::FileRotate - 定期轮换日志文件,作为其一部分
用法。
Log::Dispatch::File::Stamped - 邮票日志
包含日期和时间信息的文件。
Log::Dispatch::Jabber - 日志
通过 Jabber 发送消息。
Log::Dispatch::Tk - 日志
消息到 Tk 窗口。
Log::Dispatch::Win32EventLog - 日志
Windows 事件日志中的消息。
Log::Dispatch::Config - 允许
通过文本配置日志记录
文件类似于(或者我被告知)如何
它是用 log4j 完成的。