Sto provando a testare utilizzando un TimedRotatingFileHandler con un file logging.config, niente di così complicato ma dovrebbe passare ogni 10 secondi in un nuovo file di registro.Utilizzo della registrazione TimedRotatingFileHandler con un file logging.config
Comunque sto ottenendo il seguente
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'
Il pitone è piuttosto semplice imposta solo su un ciclo infinito che registra continuamente
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')
E il file di configurazione
[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')
Come si può vedere quando è impostato su "S" e non su "W" come il messaggio di errore sembra indicare.
Edit: Come per la risposta qui sotto la sintassi corretta nella configurazione di registrazione era
args=('./logs/log.out', 'S', 10, 5, None, False, False)
L'ultima forma, credo, dovrebbe funzionare. Ricorda - qualunque cosa sia in arg verrà effettivamente passata a 'eval()'. Non sono sicuro che il tuo primo suggerimento funzionerà - mi aspetterei che generasse un 'SyntaxError'. –
Grazie a entrambi, ho letteralmente lavorato a me stesso, è stato l'ultimo modulo che funziona correttamente – PDStat