Per il mio primo esperimento di registrazione in Python (2.7) sto creando un modulo di registrazione di base, che creerà rapidamente un logger (quindi non dovrò configurarlo per modulo /classe).Registrazione Python: visualizza solo le informazioni dal livello di debug
Quello che voglio fare è creare un logger che visualizza tutti i messaggi di livello INFO e superiori sulla console e sposta tutte le informazioni di livello DEBUG in un file di testo.
Finora ho creato un registratore che stampa INFO e fino alla console e che stampa tutti i messaggi di registro in un file di testo. Tuttavia, non voglio tutti i messaggi INFO e superiori nel mio file di testo.
Ho creato uno Python Fiddle che contiene il mio codice.
ho usato i seguenti messaggi di debug da un tutorial:
log.debug('All systems operational')
log.info('Airspeed 300 knots')
log.warn('Low on fuel')
log.error('No fuel. Trying to glide.')
log.critical('Glide attempt failed. About to crash.')
che sulla produzione di console:
[INFO] root: Airspeed 300 knots
[WARNING] root: Low on fuel
[ERROR] root: No fuel. Trying to glide.
[CRITICAL] root: Glide attempt failed. About to crash.
E nel mio file debug_log.txt:
2013-06-14 14:51:46,963:DEBUG:root:All systems operational
2013-06-14 14:51:46,964:INFO:root:Airspeed 300 knots
2013-06-14 14:51:46,964:WARNING:root:Low on fuel
2013-06-14 14:51:46,964:ERROR:root:No fuel. Trying to glide.
2013-06-14 14:51:46,964:CRITICAL:root:Glide attempt failed. About to crash.
In il blocco precedente, le ultime quattro righe non dovrebbero essere nel file. È quello che sto cercando di fare e come otterrei il risultato desiderato?
Ecco, stavo proprio scrivendo :-) – zmo
Grazie, dovrò guardare quale codice funziona esattamente, ma con queste informazioni ci arriverò. :) –
Per riferimenti futuri, penso che sia bello sottolineare quanto segue: Il codice sopra riportato funziona principalmente. Ci sono alcuni due punti mancanti alla fine della lezione, ma quelli sono facili da individuare. Se si sostituisce la riga 'if record.level! = DEBUG:' con 'se non record.levelno == DEBUG:', tutti i registri non DEBUG vengono filtrati bene. –