使用Twisted logger时可以延迟日志文件的旋转吗?

问题描述 投票:0回答:1

[当使用logging模块创建旋转日志文件时,我可以告诉记录器通过使用delay=True类的TimedRotatingFileHandler自变量来将旋转延迟到有实际数据要记录时:

import time
import logging
from logging.handlers import TimedRotatingFileHandler

if __name__ == '__main__':
    handler = TimedRotatingFileHandler('logfile.log', when='midnight', delay=True)
    out_fmt = '[%(asctime)s.%(msecs)03dZ] [%(levelname)s] %(message)s'
    dt_fmt = '%Y-%m-%d %H:%M:%S'
    logging.Formatter.converter = time.gmtime
    formatter = logging.Formatter(out_fmt, dt_fmt)
    handler.setFormatter(formatter)
    root = logging.getLogger()
    root.setLevel(logging.DEBUG)
    root.addHandler(handler)

这在很少有新信息输出到日志时非常有用,例如,如果整天没有任何新信息被记录;那么您就不想在当天创建一个空的日志文件。

使用扭曲记录仪(twisted.python.logfile.DailyLogFile)时是否可以达到相同的效果?

python logging twisted
1个回答
1
投票

您可以通过重写shouldRotate类中的DailyLogFile函数来实现所需的行为。

© www.soinside.com 2019 - 2024. All rights reserved.