如何强制日志文件切入Python

时间:2016-06-14 16:17:09

标签: python logging

我在长时间运行的应用程序中使用TimedRotatingFileHandler,设置为在午夜剪切日志文件。但是,如果应用程序没有操作,则日志文件可能不会在午夜或任何时候关闭它。

强制日志文件在午夜(或任意时间)剪切的最简单方法是什么?我宁愿不用一些内部时间依赖更新应用程序代码。我最初的想法是编写一个由cron作业触发的脚本来获取应用程序使用的logger实例,并在午夜触发翻转。可以这样做吗?否则,记录器是否可以配置为在午夜自动切换?

Application.py

import logging
logger = logging.getLogger("foo")
handler = logging.handlers.TimedRotatingFileHandler("test.log" , 'midnight', 1, backupCount=5, utc=True)
logger.addHandler(handler)

while True:
    if action_required():
       logger.info("Something happened")
    sleep(5)

CutLogs.py

#!/usr/bin/env python

import logging
app_logger = logging.getLogger("foo")
app_logger.handlers[0].doRollover()

0 个答案:

没有答案