2012-08-27 77 views
3

我想讓我的日誌文件中的所有時間戳都是UTC時間戳。Python日誌記錄:在配置文件中指定日誌格式化程序的轉換器屬性

import logging 
import time 

myHandler = logging.FileHandler('mylogfile.log', 'a') 
formatter = logging.Formatter('%(asctime)s %(levelname)-8s %(name)-15s:%(lineno)4s: %(message)-80s') 
formatter.converter = time.gmtime 

myHandler.setFormatter(formatter) 

myLogger = logging.getLogger('MyApp') 
myLogger.addHandler(myHandler) 

myLogger.setLevel(logging.DEBUG) 
myLogger.info('here we are') 

我想從「在碼」上述結構移開到一個基於配置文件機制:當通過碼指定,如下這樣做。

下面是格式的配置文件部分:

[handler_MyLogHandler] 
args=("mylogfile.log", "a",) 
class=FileHandler 
level=DEBUG 
formatter=simpleFormatter 

現在,我怎麼指定在上面的部分轉換屬性(time.gmtime)?

編輯:上述配置文件因此加載:

logging.config.fileConfig('myLogConfig.conf') 
+0

什麼分析該配置文件?這個問題顯然缺少一些東西。 –

+0

謝謝你指出托馬斯。已將詳細信息添加到qn。 – sradhakrishna

+0

我更新了您的代碼示例,以便它實際運行並記錄。始終提供完整的代碼示例。 –

回答

3

不幸的是,沒有這樣做的使用配置文件的方式,比具有其它例如a

class UTCFormatter(logging.Formatter): 
    converter = time.gmtime 

然後在配置中使用UTCFormatter

0

這裏維奈的解決方案應用到logging.basicConfig:

import logging 
import time 

logging.basicConfig(filename='junk.log', level=logging.DEBUG, format='%(asctime)s: %(levelname)s:%(message)s') 
logging.Formatter.converter = time.gmtime 
logging.info('A message.') 
相關問題