问题
Python 自带了一个 handler 可以实现每天自动切割日志文件的功能(其实支持各种按时间切割的方法,不过按日期切割是最常用的一种)。
切割 这件事的触发和执行逻辑可以从 BaseRotatingHandler(logging.FileHandler)
里看到:
def emit(self, record):
"""
Emit a record.
Output the record to the file, catering for rollover as described
in doRollover().
"""
try:
if self.shouldRollover(record):
self.doRollover()
logging.FileHandler.emit(self, record)
except (KeyboardInterrupt, SystemExit):
raise
except:
self.handleError(record)
而 TimedRotatingFileHandler
只不过是