Desidero utilizzare il gestore di registrazione StreamHandler di python. quello che ho provato a dire,Python: logging.streamhandler non invia i registri allo stdout
import logging
import sys
mylogger = logging.getLogger("mylogger")
h1 = logging.StreamHandler(stream=sys.stdout)
h1.setLevel(logging.DEBUG)
mylogger.addHandler(h1)
# now trying to log with the created logger
mylogger.debug("abcd") # <no output>
mylogger.info("abcd") # <no output>
mylogger.warn("abcd") # abcd
mi sto perdendo qualcosa? O facendo qualcosa di sbagliato? Perché i registri di livello INFO e DEBUG non arrivano su STDOUT?
Stavo seguendo alcuni documenti di base, http: //docs.python. org/2/howto/logging.html # logging-advanced-tutorial Doc dice setLevel sul gestore. Questo documento è sbagliato? –
No, non è sbagliato, come puoi vedere in http://docs.python.org/2/howto/logging.html#logging-flow il logger passa la chiamata di registrazione al gestore dopo che ha controllato il livello. Quindi, se il livello del registratore è impostato su 'WARN', e un messaggio' DEBUG' sta arrivando, non viene eseguito nulla. Se un messaggio passa, il registratore lo consegna al gestore, che ha anche un tipo di "filtro" di registrazione. – tamasgal
perché devo impostare il livello del logger se ho impostato il livello del gestore? perché impostarlo due volte? sembra essere ridondante. – ospider