2

我有一个每天运行的脚本,并且使用 Python 的 TimedRoatingLogFileHandler。下面是代码的摘录。

log = 'test.log'           # Set up Log title
filename = '/var/log/' + log
handler = TimedRotatingFileHandler(filename, when="D", interval=1, backupCount=45)
formatter = logging.Formatter('%(asctime)s : %(name)s : %(levelname)s : %(message)s',
                              datefmt='%a, %d-%b-%Y %H:%M:%S')
handler.setFormatter(formatter)
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
logger.addHandler(handler)

logger.info("Script execution started")

我期待每天创建一个新的日志文件 test.log,并且以前的日志将被移动到 test.log.1 和 test.log.2 等。

我的假设正确吗?如果是这样,为什么它没有发生?我仍然可以在今天的日志中看到昨天的输出。昨天的日志文件没有像我预期的那样移动到另一个文件。我在 SUSE linux 机器上使用 Python 2.7。我检查了其他线程,但其中大多数不包含任何答案。如果您需要更多详细信息,请告诉我。

4

1 回答 1

2

您需要实际记录一些内容才能发生翻转。在您的程序执行此操作之前,昨天的输出可能仍然在当前日志中。

更新: TimedRotatingFileHandler用于脚本运行多天,同时记录多天。如果脚本每天在一天结束之前完成,最好使用FileHandler从日期派生的文件名。

于 2017-07-28T13:26:57.903 回答