Как я могу изменить часовой пояс временных меток Log4perl

Мой веб-сервер находится в часовом поясе, отличном от моего, и я использую этот макет шаблона в конфигурации Log4perl:

log4perl.appender.LOGFILE.layout=PatternLayout
log4perl.appender.LOGFILE.layout.ConversionPattern=%d | %p | %l | %c | %m%n

% D создает дату / время в часовом поясе сервера. Как я могу сделать так, чтобы она записывала дату / время в моем местном часовом поясе?

Я знаю, что следующее:

$Log::Log4perl::DateFormat::GMTIME = 1;

Заставляет регистрировать дату / время по Гринвичу, однако я не смог найти в документации ничего для поддержки произвольных часовых поясов.

1 ответ

Если вы установите часовой пояс для Perl в целом, это также исправит журналы. Может быть, слишком тупым инструментом для ваших целей:

use POSIX qw(tzset);

$ENV{TZ} = 'desired time zone goes here';
tzset;

Чтобы быть еще более грубым, если у вас есть доступ, вы можете установить TZ в среде самого веб-сервера и иметь все в нужной зоне.

Но я думаю, вам лучше записывать все в UTC.

Другие вопросы по тегам