I am trying to check with TimedRotatingFileHandler with a logging.config file, nothing complicated, but it should retell every 10 seconds to a new log file.
However, I get the following
Traceback (most recent call last): File "testLogging.py", line 6, in <module> logging.config.fileConfig(logDir+'logging.conf') File "C:\Python26\Lib\logging\config.py", line 84, in fileConfig handlers = _install_handlers(cp, formatters) File "C:\Python26\Lib\logging\config.py", line 159, in _install_handlers h = klass(*args) File "C:\Python26\Lib\logging\handlers.py", line 195, in __init__ raise ValueError("You must specify a day for weekly rollover from 0 to 6 (0 is Monday): %s" % self.when) ValueError: You must specify a day for weekly rollover from 0 to 6 (0 is Monday) : WHEN='S'
Python is pretty simple, it just sets up an infinite loop that constantly logs
import logging import logging.config logDir = "./logs/" logging.config.fileConfig(logDir+'logging.conf') logger = logging.getLogger('root') while 1==1: logger.info('THIS IS AN INFO MESSAGE')
And the configuration file
[loggers] keys=root [logger_root] level=INFO handlers=timedRotatingFileHandler [formatters] keys=timedRotatingFormatter [formatter_timedRotatingFormatter] format=%(asctime)s %(name)-12s %(levelname)-8s %(message)s datefmt=%m-%d %H:%M [handlers] keys=timedRotatingFileHandler [handler_timedRotatingFileHandler] class=handlers.TimedRotatingFileHandler level=INFO formatter=timedRotatingFormatter args=('./logs/log.out', 'when=\'S\'', 'interval=10', 'backupCount=5')
As you can see, when set to "S" rather than "W", it seems to indicate an error message.
Edit: as per the answer below, the correct syntax in the logging configuration was
args=('./logs/log.out', 'S', 10, 5, None, False, False)