我一直在做研究工作,并且正在完成我希望实现的任务时非常困难。 目前,这是我有什么(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