So schreiben Sie eine benutzerdefinierte Konsolenprotokollfunktion, um nur die Protokollmeldungen des Konsolenfensters in einer einzelnen Zeile (nicht anhängen) bis zum ersten regulären Protokolldatensatz auszugeben.Wie schreibe ich benutzerdefinierte Python-Logging-Handler?
progress = ProgressConsoleHandler()
console = logging.StreamHandler()
logger = logging.getLogger('test')
logger.setLevel(logging.DEBUG)
logger.addHandler(console)
logger.addHandler(progress)
logger.info('test1')
for i in range(3):
logger.progress('remaining %d seconds' % i)
time.sleep(1)
logger.info('test2')
Damit die Konsolenausgabe ist nur drei Zeilen:
INFO: test1
remaining 0 seconds...
INFO: test2
Irgendwelche Vorschläge auf dem besten Weg, wie dies zu implementieren?
Wo ist 'log' definiert? ... neben dem 'log' in' math' ... –
Die meisten davon sollten helfen: http://stackoverflow.com/search?q=python+logging+handler –
mögliche Duplikate von [Redirect Logging-Ausgabe mit benutzerdefinierten Logging-Handler] (http://stackoverflow.com/questions/2819791/redirect-logging-output-using-custom-logging-handler) –