2014-01-23 74 views
0

我寫了一個小功能來記錄事件到一個文件。這個python腳本被導入到主腳本中。主腳本作爲守護進程運行(實際上是輪詢數據庫)。Python BasicConfig日誌記錄不會改變日誌文件

MainScript.py:

import logger 

logger.logmessage(module = module, message = "SomeMessage") 

logger.py:

def logmessage(message, module, level = 'INFO'): 
    today = str(datetime.date.today()) 
    logFile = '/path/to/log/myapplog.'+today+'.log' 

    logging.basicConfig(format='%(asctime)s - %(levelname)s - '+ module + ' - %(message)s',level=logging.INFO,filename=logFile) 

    if level is "INFO": 
     logging.info(message) 
    elif level is "WARNING": 
     logging.warning(message) 
    elif level is "CRITICAL": 
     logging.critical(message) 

我的意圖:讓日誌文件像myapplog.2014-01-23.log,2014-01-24.log, ...

我的proplem:日誌文件保持不變。它不斷記錄到myapplog.2014-01-23.log,並且只有在守護進程重新啓動後,纔會創建並使用正確日期的正確日誌。

回答

1

這聽起來像你需要使用TimedRotatingFileHandler作爲記錄here

另外,您不應該多次撥打basicConfig()(我假設您不止一次致電logmessage)。由於documented,basicConfig()除了設置基本配置(如果沒有設置基本配置)之外不會執行任何操作(所以只有第一個調用執行任何操作 - 後續調用纔會發現配置,因此不要執行任何操作)。

+0

這有幫助,謝謝! – phil