【发布时间】:2018-04-17 12:03:33
【问题描述】:
我有 Log::Log4perl 配置,其中包含两个附加到文件和屏幕的附加程序,如下所示:
log4perl.logger.bc_log = INFO, bc_log, console
log4perl.appender.bc_log = Log::Log4perl::Appender::File
log4perl.appender.bc_log.filename = bc.log
log4perl.appender.bc_log.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.bc_log.layout.ConversionPattern = %d{ISO8601}%d{Z} %H %m%n
log4perl.appender.console = Log::Log4perl::Appender::Screen
log4perl.appender.console.stderr = 1
log4perl.appender.console.layout = Log::Log4perl::Layout::PatternLayout
log4perl.appender.console.layout.ConversionPattern = %m%n
在我的程序中,所有输出都显式转换为 utf8(例如来自 cp1251)并在我的程序中某处:
my $bc_log = Log::Log4perl->get_logger('bc_log');
$bc_log->info('Some-utf8-encoded-string');
所以消息在 utf8 中同时发送到文件和控制台,但我想要 utf8 用于文件,cp866 用于控制台。 我不知道在 Log::Log4perl 中是否可行? 看起来 Log::Log4perl::Appender::File 没有编码选项。
【问题讨论】:
标签: encoding appender perl log4perl