Sto utilizzando il modulo logging
in python 3 e desidero che un particolare messaggio di avviso venga visualizzato una sola volta. Il problema è che il controllo è all'interno di un ciclo:Registrazione Python: messaggio di stampa solo una volta
def canned_example():
logger.warning("This function hasn't been created yet")
for i in range(10):
canned_example()
C'è una bandiera per impostare all'interno del modulo di registrazione che denotano che questa particolare avviso è solo per essere visualizzato una volta? L'alternativa è tenere un registro di bandiere diverse, ma mi piacerebbe mantenerlo semplice se possibile.
Aggiornamento: Amir Yazdanbakhsh ha pubblicato una risposta nei commenti che ci consente di farlo per tutti i messaggi. Idealmente, vorrei un po 'di bandiera per-messaggio:
def canned_example():
logger.warning("This function hasn't been created yet", norepeat=True)
for i in range(10):
canned_example()
È possibile trovare la risposta qui: http://stackoverflow.com/questions/6506146/logging-in-continouous-loop –
Un'ottima scoperta! Non sono riuscito a trovarlo su Google, quindi ho aggiunto alcune parole chiave lì. Non fa * del tutto * quello che voglio però - Voglio controllo per messaggio, ma lo farà per ora. – robertlayton
Scrivi il tuo wrapper 'logging.warn' che tiene traccia dei messaggi che non vorresti ripetere. – 4ae1e1