简体   繁体   English

Python 日志记录定义日志文件的计划擦除

[英]Python logging define schedule erase of log file

Below is my current logging configuration.以下是我当前的日志记录配置。

I would like to know how can I get my log file cleared every 2 days, as I do have my script running on crontab schedule daily during the day.我想知道如何每 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)

Here's an Example which supposed to clear the log file after each 2 min.这是一个示例,它应该每 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')

Output after several running is below (log file not cleared): Output经过几次运行如下(日志文件未清除):

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)

You need a backupCount parameter to delete the old log files.您需要一个backupCount参数来删除旧的日志文件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM