python中timedrotingfilehandler的滚动未发生

2024-06-28 09:50:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个每天运行的脚本,它使用Python的TimedRoatingLogFileHandler。 下面是代码的节选。在

log = 'test.log'           # Set up Log title
filename = '/var/log/' + log
handler = TimedRotatingFileHandler(filename, when="D", interval=1, backupCount=45)
formatter = logging.Formatter('%(asctime)s : %(name)s : %(levelname)s : %(message)s',
                              datefmt='%a, %d-%b-%Y %H:%M:%S')
handler.setFormatter(formatter)
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
logger.addHandler(handler)

logger.info("Script execution started")

我在等一个新的日志文件测试日志每天创建,上一个日志将移动到测试日志.1和测试日志.2等

我的假设正确吗? 如果是这样,为什么没有发生? 我仍然可以在今天的日志中看到昨天的输出。昨天的日志文件没有像我预期的那样移动到另一个文件。 我在suselinux机器上使用python2.7。 我检查了其他的线索,但大多数都没有答案。 如果你需要更多的细节,请告诉我。在


Tags: 文件代码nametest脚本logformatterlogging
1条回答
网友
1楼 · 发布于 2024-06-28 09:50:22

您需要实际记录一些内容,以便发生滚动。在您的程序执行此操作之前,昨天的输出可能仍在当前日志中。在

更新:TimedRotatingFileHandler用于脚本运行超过多天,而日志记录超过多天。如果脚本每天都在一天结束之前完成,那么最好使用一个FileHandler,并使用从日期派生的文件名。在

相关问题 更多 >