我一直在做研究工作,並且正在完成我希望實現的任務時非常困難。 目前,這是我有什麼(testlog.py)Python日誌記錄 - 每次應用程序運行時都會創建新的日誌文件
import logging
import logging.handlers
filename = "example.log"
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
handler = logging.handlers.RotatingFileHandler(filename, mode = 'w', backupCount = 5)
handler.setLevel(logging.DEBUG)
handler.setFormatter(formatter)
logger.addHandler(handler)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
ch.setFormatter(formatter)
logger.addHandler(ch)
for i in range(10):
logger.debug("testx") #where I alternate x from 1 thru 9 to see output
目前,它成功地打印到控制檯和example.log,這就是我想要的。
我每次運行它,它使一個新的文件,並替換舊example.log像這樣:
運行與logger.debug("test1")
example.log包含test1的10倍,它應該像
與logger.debug("test2")
運行它重寫example.log包含test2的10倍 等等
不過,我想爲代碼我每次運行程序時作一個新的日誌文件,這樣我有
example.log
example.log1
example.log2
...
example.log5
最後,我想爲這個文件打印日誌消息到控制檯,到日誌文件,並且我想要一個新的日誌文件(高達* .5),每當我運行該程序。謝謝!
已解決!我所做的只是在末尾添加'logging.handlers.RotatingFileHandler.doRollover(處理程序)' – practicemakesperfect
最後不要這麼做 - 如果你的腳本失敗了,那麼中點沒有達到最終的結果,你將不會得到新的日誌文件在下一次啓動。在初始化日誌時執行此操作。 – zwer