如何使用log::Log4perl记录时区



我们使用Log::Log4perl记录当前日期,如下所示:

log4perl.appender.perllog.layout.ConversionPattern=%d{yyyyMMdd.hhmmss:}-%P-%H-%p{2}-%m

是否有一种方法来记录时区?

Log::Log4perl::Layout::PatternLayout中的日期格式由Log::Log4perl::DateFormat实现,它支持时区偏移的Z说明符:

use strict;
use warnings 'all';
use Log::Log4perl;
my $conf = <<'CONF';
    log4perl.logger.Foo = INFO, perllog
    log4perl.appender.perllog          = Log::Log4perl::Appender::File
    log4perl.appender.perllog.filename = foo.log
    log4perl.appender.perllog.layout   = Log::Log4perl::Layout::PatternLayout
    log4perl.appender.perllog.layout.ConversionPattern = 
        %d{yyyyMMdd.hhmmssZ:}-%P-%H-%p{2}-%m
CONF
Log::Log4perl::init($conf);
my $logger = Log::Log4perl->get_logger('Foo');
$logger->warn('Hello, timezone!');
输出:

20160831.094036-0600:-28223-www.example.com-WA-Hello, timezone!

没有记录在Log::Log4perl::Layout::PatternLayout;一般来说,使用未记录的特性是一个坏主意,但在这种情况下,看起来作者只是忘记在一个模块中更新文档,而将特性添加到另一个模块中。我已经提交了一个ticket来更新文档

相关内容

  • 没有找到相关文章

最新更新