Ogni volta che penso di capire il modulo di registrazione, i gremlins entrano e cambiano il modo in cui funziona. (Ok, lo ammetto, quel gremlin potrebbe essere io a cambiare il mio codice.)Configurazione dei logger per bambini
Cosa sto facendo di sbagliato qui?
> ipython
> import logging
> log = logging.Logger("base")
> log.addHandler(logging.StreamHandler())
> log.critical("Hi")
Hi
> log2 = log.getChild("ment")
> log2.critical("hi")
No handlers could be found for logger "base.ment"
avrei giurato che in passato, sono stato in grado di utilizzare logger bambino senza configurazioni aggiuntive ...
Provalo in una nuova sessione. Funziona per me usando ipython e anche come script. – unutbu
Non funziona nemmeno per me in cPython 2.7.2. Mi chiedo se abbia qualcosa a che fare con la configurazione di default di un 'StreamHandler' ... Quando creo' log', aggiungo il gestore a 'log', quindi creo' log2', ottengo 'No handler', ma se creo 'log2' prima, poi aggiungo il gestore a' log', l'accesso a 'log2' non è un errore (anche se non stampa nulla). –
@unutbu: Hmmm ... che * è * una nuova sessione. Ho incluso la riga di comando 'ipython' nella parte superiore per indicare che. Che tu sia in grado di gestirlo senza problemi mi dà una brutta sensazione. Sto eseguendo Python 2.7.1 e IPython 0.10. È stato così per un * lungo * tempo, quindi questo non sembra essere il problema. Io * so * ha a che fare con il mio codice ... –