日志记录包中的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日的文件中。
答案 0 :(得分:1)
此处理程序始终写入基本文件(xxx.log)。当需要进行过渡时,将关闭文件,将其重命名,然后再次打开具有基本文件名的文件。
如果您正在使用多个进程写入同一文件(暗示您可能使用UWSGI),那么您可能会偶尔遇到问题-支持从多个进程写入同一文件,但不支持您这样做它。有关更多信息,请参见this question/answer和this cookbook entry。