2012-07-18 9 views
24

Cuando registro un evento con logging.info, no aparece en el terminal de Python.logging.info no aparece en la consola pero advierte y error

import logging 
logging.info('I am info') # no output 

Por el contrario, los eventos registrados con logging.warn no aparecerá en el terminal.

import logging 
logging.warn('I am warning') # outputs "I am warning" 

¿Hay un cambio de nivel medio que pueda para que logging.info de impresión a la consola? Quiero evitar hacer cambios en cada archivo de Python.

Respuesta

41

El registrador de raíz siempre se establece de manera predeterminada en el nivel de ADVERTENCIA. Intenta llamar a

logging.getLogger().setLevel(logging.INFO) 

y estarás bien.

+0

esto funciona bien, pero creo que tendré que cambiarlo en cada archivo de Python que tengo ¿verdad? no existe una configuración global para LOGGING – daydreamer

+1

No, solo debe llamarlo una vez. El registrador está construido como una jerarquía con y todo el registro se reduce a un * root logger *. Al no especificar ningún argumento para 'getLogger()', le devuelve el registrador de raíz. Siempre y cuando no modifiques los otros registradores, solo necesitas modificar el registrador de raíz. – Ztyx

+0

genial, gracias por la información – daydreamer

3

Debe llamar al logging.basicConfig antes de llamar al logging.info o logging.warn y pasar el argumento level= deseado.

+3

esto no funciona, a pesar de hacer exactamente lo que dice el tutorial. – episodeyang

Cuestiones relacionadas