Cuando registro un evento con logging.info, no aparece en la terminal de Python.
import logging
logging.info('I am info') # no output
Por el contrario, los eventos registrados con logging.warnaparecen en la terminal.
import logging
logging.warn('I am warning') # outputs "I am warning"
¿Hay algún cambio de nivel de entorno que pueda realizar logging.infopara imprimir en la consola? Quiero evitar hacer cambios en cada archivo de Python.

getLogger(), le devuelve el registrador raíz. Siempre que no modifique los otros registradores, solo necesita modificar el registrador raíz.Python 3.5.2 (default, Nov 12 2018, 13:43:14)[GCC 5.4.0 20160609] on linux>>> import logging>>> rootLog = logging.getLogger()>>> rootLog.setLevel(logging.INFO)>>> rootLog.info('all the kings horses')>>> rootLog.warning('all the kings men')all the kings menComo dijo @ztyx, el nivel de registrador predeterminado es ADVERTENCIA. Tienes que ponerlo en un nivel más bajo
Puede hacerlo usando logging.basicConfig y configurando el nivel de registrador :
fuente
basicConfig()no funciona para mí, aunquelogging.getLogger().setLevel()funciona adecuadamente.Las soluciones anteriores no funcionaron para mí, pero el código aquí sí lo hizo:
# set up logging to file logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)-12s %(levelname)-8s %(message)s', datefmt='%m-%d %H:%M', filename='/temp/myapp.log', filemode='w') # define a Handler which writes INFO messages or higher to the sys.stderr console = logging.StreamHandler() console.setLevel(logging.INFO) # add the handler to the root logger logging.getLogger('').addHandler(console)(Omití partes del código en aras de la legibilidad)
fuente
logging.error("Connection timed out!")e incluso con ellevel=logging.DEBUGen elbasicConfig(), no se imprimía en la consola. Agregar el controlador lo hizo, muchas gracias !!basicConfigo lo configuro por encima de INFO, el registrador de la consola nunca registrará nada. Si dejo fuerabasicConfig, puedo llamarsetLevela un registrador todo el día (y puedo ver el cambio de nivel llamandogetEffectiveLevel) pero nunca registrará nada por debajo delWARNINGnivel. En realidad, no estoy seguro de que ese no sea el comportamiento correcto, pero no es lo que esperaba.