Reputation: 11525
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.
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.
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):
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
Upvotes: 0
Views: 158
Reputation: 21
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.
Upvotes: 1