Il modulo logging
utilizza i gestori collegati ai registratori per decidere come, dove, o anche se i messaggi vengono memorizzati o visualizzati. È possibile configurare logging
per impostazione predefinita per scrivere in un file. Dovresti davvero leggere lo docs, ma se chiami logging.basicConfig(filename=log_file_name)
dove log_file_name
è il nome del file in cui vuoi scrivere messaggi (nota che devi farlo prima che venga chiamato tutto il resto in logging
), quindi tutti i messaggi registrati a tutti i logger (a meno che qualche altra riconfigurazione avvenga più tardi) saranno scritti lì. Essere consapevoli del livello in cui è impostato il logger; se la memoria serve, info
è al di sotto del livello di registro predefinito, quindi dovresti includere level=logging.INFO
negli argomenti a basicConfig
e il tuo messaggio finirà nel file.
Per quanto riguarda l'altra parte della tua domanda, logging.getLogger(some_string)
restituisce un oggetto Logger
, inserito in nella posizione corretta nella gerarchia del logger principale, con il nome di essere il valore di some_string
. Chiamato senza argomenti, restituisce il logger root. __name__
restituisce il nome del modulo corrente, quindirestituisce un oggetto Logger
con il nome impostato sul nome del modulo corrente. Questo è un modello comune utilizzato con logging
, in quanto fa sì che la struttura del logger rispecchi la struttura del modulo del codice, il che rende molto più utili i messaggi di registrazione durante il debug.
fonte
2013-01-18 19:39:02