我有一個使用Python日誌記錄模塊進行日誌記錄的Jython腳本。在一臺機器上,腳本記錄良好,另一臺記錄的時間則轉移到未來五個小時。據推測,這與格林威治標準時間-5時的機器有關。你認爲會導致這個問題?Jython日誌記錄時間錯誤
下面是如何創建的日誌對象:
log = logging.getLogger("my_log")
log.setLevel(logging.DEBUG)
handler = logging.handlers.RotatingFileHandler(
log_file,
maxBytes=log_size,
backupCount=logs_count)
log_format = logging.Formatter("%(asctime)s:%(levelname)s:%(message)s")
handler.setFormatter(log_format)
handler.setLevel(logging.DEBUG)
log.addHandler(handler)
我沒看log_format.converter
功能。我確實確定了在有問題的機器上正確設置時間。而且我確信Python會在Python shell中打印正確的時間。
編輯:如果我看time.localtime()
從Python的外殼(2.4.3),然後我得到正確的本地時間值的元組。如果我從Jython腳本(2.5.2RC1)中查看time.localtime()
,那麼我可以看到GMT時間。
記錄正確的機器是否使用GMT? – Velociraptors 2010-12-16 17:24:56
是的,它的確如此:它是一臺Linux機器,Unix機器在內部使用GMT,然後進行數學計算。另一臺機器......我不確定。我的意思是我知道它是CentOS第5版(Final),從/ etc/issues來看,但我認爲它是虛擬化的。在兩臺機器上,當我從bash運行'date'時,我得到正確的時間。 – wilhelmtell 2010-12-16 17:32:00
我也嘗試明確設置'log_format.converter = time.localtime'無濟於事。 – wilhelmtell 2010-12-16 17:59:07