This is my config file:
[loggers]
keys=root
[handlers]
keys=TimedRotatingFileHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=TimedRotatingFileHandler
[handler_TimedRotatingFileHandler]
class=handlers.TimedRotatingFileHandler
level=DEBUG
formatter=simpleFormatter
args=('driver.log', 'midnight', 1, 30)
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=
In my code I setup and use the logger like this:
import logging
import logging.config
logging.config.fileConfig('logging.conf')
logging.info('Some message...')
Messages are logged to the file I specify (driver.log), but the rotations at midnight never happen.
Must the process be running at midnight for the rotation to occur? This is a batch process that I run every 15 minutes and it is never actually running at midnight.
The answer is that the process must be running all the time for this to work properly.
From http://bytes.com/topic/python/answers/595931-timedrotatingfilehandler-isnt-rotating-midnight:
Rotating should happen when the logging process creates the handler before midnight and makes a logging call destined for that handler after midnight.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With