2012-07-18 8 views
24

Quando registro un evento con logging.info, non viene visualizzato nel terminale Python.logging.info non viene visualizzato sulla console ma avvisa ed errore fa

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

Al contrario, eventi registrati con logging.warn appaiono nel terminale.

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

C'è un cambiamento di livello ambiente che posso per fare logging.info stampa alla console? Voglio evitare di apportare modifiche in ogni file Python.

risposta

41

Il logger di root ha sempre il livello di AVVERTENZA. Prova a chiamare

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

e dovresti stare bene.

+0

questo funziona bene, ma penso che dovrò cambiarlo in ogni file python che ho ragione? non esiste un'impostazione globale per LOGGING – daydreamer

+1

No, è necessario chiamarlo solo una volta. Il logger è costruito come una gerarchia con e tutto il logging si riduce a un * root logger *. Non specificando alcun argomento a 'getLogger()', ti sta restituendo il logger root. Finché non si modificano gli altri logger è sufficiente modificare il logger root. – Ztyx

+0

cool, grazie per le informazioni – daydreamer

3

È necessario chiamare logging.basicConfig prima di chiamare logging.info o logging.warn e passare un argomento desiderato level=.

+3

questo non funziona, nonostante faccia esattamente quello che dice il tutorial. – episodeyang

Problemi correlati