【发布时间】:2020-05-24 10:41:47
【问题描述】:
当使用logging 模块创建轮换日志文件时,我可以使用TimedRotatingFileHandler 类的delay=True 参数告诉记录器延迟轮换直到有实际数据要记录,如下所示:
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 logger (twisted.python.logfile.DailyLogFile) 是否可以达到同样的效果?
【问题讨论】: