记录TimedRotatingFileHandler不能正常工作

时间:2018-06-23 08:24:27

标签: python logging

日志记录包中的TimedRotatingFileHandler无法正常工作。我的程序来源:

Sessions

几天后,出现两个问题。 首先,它再次写入 log_file.log 。 其次,日志记录记录了 B 日的第 A 天的事件。例如:

from logging.handlers import TimedRotatingFileHandler
import logging

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
handler = TimedRotatingFileHandler("log/log_file.log", when="d")
handler.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)

File name:    
log_file.log.2018-06-21

在此示例中,错误地将6月23日的事件写在6月21日的文件中。

1 个答案:

答案 0 :(得分:1)

此处理程序始终写入基本文件(xxx.log)。当需要进行过渡时,将关闭文件,将其重命名,然后再次打开具有基本文件名的文件。

如果您正在使用多个进程写入同一文件(暗示您可能使用UWSGI),那么您可能会偶尔遇到问题-支持从多个进程写入同一文件,但不支持您这样做它。有关更多信息,请参见this question/answerthis cookbook entry