2012-06-17 49 views
0

我的Web服務器是一個時區,從我的不同,我在Log4perl配置使用這種模式佈局:如何更改Log4perl的時區時間戳

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

的%d生產日期/時間服務器的時區。我怎樣才能讓它在我的本地時區中記錄日期/時間?

我知道以下幾點:

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

導致在格林尼治標準時間進行記錄,但是我能找到的任何文檔中,支持任意時區的日期/時間。

+3

不是一個答案,但我強烈建議只記錄以UTC(以前稱爲GMT)的所有內容,無論服務器是否在您的本地時區。它避免了日誌處理和分析中的許多混淆。 –

回答

0

如果您一般設置Perl的時區,那也會修復日誌。可能是太鈍的工具爲您的目的:

use POSIX qw(tzset); 

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

要走得較鈍的,如果你有機會,你可以在Web服務器本身的環境中設置TZ,並在所需的一切區。

但我認爲你最好用UTC記錄所有事情。