En el logging howto documentation existe este ejemplo:tala setLevel, cómo funciona
import logging
# create logger
logger = logging.getLogger('simple_example')
logger.setLevel(logging.DEBUG)
# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# add formatter to ch
ch.setFormatter(formatter)
# add ch to logger
logger.addHandler(ch)
Por qué debería establecer el nivel de logging.DEBUG
dos veces, para Logger
, y para el StreamHandler
?
Entiendo ch.setLevel(logging.DEBUG)
establecerá el nivel de depuración para el controlador de flujo. ¿Pero cuál es el efecto de establecer el nivel en el registrador? Donde se refleja este nivel?
Obtengo la misma salida de consola si cambio el nivel a, por ejemplo, INFO
al Logger
o al StreamHandler
.
Es decir:
...........
logger.setLevel(logging.INFO)
............
ch.setLevel(logging.DEBUG)
da la misma salida en la consola de
...........
logger.setLevel(logging.DEBUG)
............
ch.setLevel(logging.INFO)