2010-06-09 70 views
0

我的系統在Linux中設置爲EDT,我可以使用datetime.now()在Python中進行確認。然而,記錄器提前4小時輸出。這可能是什麼原因?Python日誌記錄輸出時間比系統提前4小時

編輯:日誌記錄配置是這樣的:

logging.basicConfig(level=logging.DEBUG) 
lf = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s") 

mylogger = logging.getLogger('mylogger') 
mylogger .setLevel(logging.DEBUG) 

lsh = logging.StreamHandler() 
lsh.setLevel(logging.DEBUG) 
lsh.setFormatter(lf) 
mylogger.addHandler(lsh) 

回答

1

你記錄儀使用UTC時間。如果你向我們展示你的代碼,可以準確地說出原因。

+0

使用日誌配置的更多詳細信息編輯。 – Rhubarb 2010-06-09 12:02:21

+0

你需要比我所展示的更多的代碼嗎?這就是關於記錄器的一切。 – Rhubarb 2010-06-09 12:09:02

+0

@rhubarb:你使用的是什麼版本的Python? – SilentGhost 2010-06-09 12:24:26

1

我認爲重要的是提前4小時是格林尼治標準時間。圍繞日誌記錄的代碼 - 它似乎使用time而不是datetime。顯然,他們在計算當地時間方面有不同的工作方式。

什麼以下輸出?:

import time 
print time.tzname 

AFAIK,控制該偏移使用日誌記錄。根據documentation,你想調整你的「系統的zoneinfo數據庫來指定時區規則」(man tzfile)。

+0

它表示EDT,EST。所以這似乎不是問題。 – Rhubarb 2010-06-10 00:55:01