Форматы дат в 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!
Это не задокументированы в журнале :: Log4perl :: Компоновка :: PatternLayout; обычно это плохая идея использовать недокументированные функции, но в этом случае автор просто забыл обновить документы в одном модуле, когда функции были добавлены в другой. Я отправил a ticket, чтобы обновить документы.