使用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时可以延迟日志文件的旋转吗?的主要内容,如果未能解决你的问题,请参考以下文章
使用带有来自java.util.logging的FileHandler的logger时,不需要.0扩展日志文件
Twisted Server通过POST接收数据流,逐字节读取request.content.read(),延迟了一个多小时