2016-11-16 95 views
0

我想知道是否有可能從配置文件創建一個時間旋轉日誌。Python:從配置文件創建一個時間旋轉日誌

這是示例代碼 它應該每分鐘寫一個新的日誌文件。

import logging 
import logging.config 
import logging.handlers 
import time 

if __name__ == '__main__': 

    logging.config.fileConfig('logging.cfg') 
    logger = logging.getLogger("main") 
    logger.info("start") 
    while True: 
     time.sleep(1) 
     logger.info("log more") 

「logging.cfg」文件如下所示。

我想從TimedRotatingFileHandler的定義中猜出語法。

[loggers] 
keys=root,main 

[handlers] 
keys=fileHandler, consoleHandler 

[formatters] 
keys=myFormatter 

[logger_root] 
level=CRITICAL 
handlers=consoleHandler 

[logger_main] 
level=INFO 
handlers=fileHandler 
qualname=main 

[handler_consoleHandler] 
class=StreamHandler 
level=WARN 
formatter=myFormatter 
args=(sys.stdout,) 

[handler_fileHandler] 
class=logging.handlers.TimedRotatingFileHandler 
formatter=myFormatter 
args=("example.log",) 
path='timeexample.log' 
when='m' 
interval=1 
backupCount=5 

[formatter_myFormatter] 
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s 
datefmt= 

啓動代碼創建工作「example.log」不旋轉 並不會引發任何錯誤。

任何想法如何改變配置文件讓它旋轉?

我使用python 3.5.2上32位的windows7的原型,並計劃將它在Debian生產

回答

0

一點猜測幫助:

把論點就像調用TimedRotatingFileHandler從代碼工作。

[handler_fileHandler] 
class=logging.handlers.TimedRotatingFileHandler 
formatter=myFormatter 
args=("timeexample.log", 'm', 1, 5,) 

什麼用的名字不工作:

args=("timeexample.log", when='m', interval=1, backupCount=5,)