python - Python日志记录定义日志文件的计划擦除
问题描述
以下是我当前的日志记录配置。
我想知道如何每 2 天清除一次日志文件,因为我的脚本每天都按 crontab 计划运行。
logger = logging.getLogger('MyLog')
logger.setLevel(logging.INFO)
formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)-5.5s - %(message)s', "%Y-%m-%d %H:%M:%S")
file_handler = logging.FileHandler(
'MyLog.log', 'a', encoding='utf-8')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
这是一个示例,它应该每 2 分钟清除一次日志文件。
import logging
from logging.handlers import TimedRotatingFileHandler
logger = logging.getLogger('MyLog')
logger.setLevel(logging.INFO)
formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)-5.5s - %(message)s', "%Y-%m-%d %H:%M:%S")
file_handler = TimedRotatingFileHandler(
filename='MyLog.log', when='M', interval=2, encoding='utf-8')
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
logger.info('Hi')
几次运行后的输出如下(未清除日志文件):
2021-04-24 23:14:24 - MyLog - INFO - Hi
2021-04-24 23:15:26 - MyLog - INFO - Hi
2021-04-24 23:15:33 - MyLog - INFO - Hi
2021-04-24 23:15:39 - MyLog - INFO - Hi
2021-04-24 23:15:40 - MyLog - INFO - Hi
2021-04-24 23:15:57 - MyLog - INFO - Hi
2021-04-24 23:16:07 - MyLog - INFO - Hi
2021-04-24 23:16:11 - MyLog - INFO - Hi
2021-04-24 23:16:16 - MyLog - INFO - Hi
2021-04-24 23:16:22 - MyLog - INFO - Hi
2021-04-24 23:16:23 - MyLog - INFO - Hi
2021-04-24 23:16:34 - MyLog - INFO - Hi
2021-04-24 23:17:08 - MyLog - INFO - Hi
解决方案
file_handler = TimedRotatingFileHandler(
filename='MyLog.log', when='D', interval=2, encoding='utf-8', backupCount=1)
您需要一个backupCount
参数来删除旧的日志文件。