Using TimedRotatingFileHandler with the logging.config protocol

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) 
+6
source share
1 answer
 args=('./logs/log.out', 'when=\'S\'', 'interval=10', 'backupCount=5') 

Doesn't look right. try it

 args=('./logs/log.out', when='S', interval=10, backupCount=5) 

Or maybe it's

 args=('./logs/log.out','S',10,5) 
+11
source

Source: https://habr.com/ru/post/903368/


All Articles