我有一个每天运行的脚本,并且正在使用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。 我检查了其他线程,但大多数都不包含任何答案。 如果您需要更多详细信息,请与我们联系。
答案 0 :(得分:0)
您需要实际记录要进行翻转的内容。在你的程序执行此操作之前,昨天的输出仍然可以在当前日志中。
更新: TimedRotatingFileHandler
适用于脚本运行多天,同时记录多天的情况。如果脚本在一天结束前每天完成,那么最好使用FileHandler
,其中包含从日期派生的文件名。