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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Twisted logger时可以延迟日志文件的旋转吗?相关的知识,希望对你有一定的参考价值。

[当使用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)时是否可以达到相同的效果?

答案

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

以上是关于使用Twisted logger时可以延迟日志文件的旋转吗?的主要内容,如果未能解决你的问题,请参考以下文章

制作python程序,直到Twisted延迟返回值

使用带有来自java.util.logging的FileHandler的logger时,不需要.0扩展日志文件

Android Logger日志系统

linux日志logger命令详解

Twisted Server通过POST接收数据流,逐字节读取request.content.read(),延迟了一个多小时

Android日志框架Logger