Utilizzo la registrazione (importazione registrazione) per registrare i messaggi.registrazione con filtri
All'interno di un singolo modulo, sto registrando i messaggi a livello di debug (my_logger.debug ('msg'));
Alcuni di questi messaggi di debug provengono da function_a() e altri da function_b(); Mi piacerebbe essere in grado di abilitare/disabilitare la registrazione in base al fatto che provengano da a o da b;
Suppongo di dover utilizzare il meccanismo di filtraggio di Logging.
Qualcuno può, per favore, mostrarmi come il codice seguente dovrebbe essere strumentato per fare ciò che voglio? Grazie.
import logging
logger= logging.getLogger("module_name")
def function_a(...):
logger.debug("a message")
def function_b(...):
logger.debug("another message")
if __name__ == "__main__":
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
#don't want function_a()'s noise -> ....
#somehow filter-out function_a's logging
function_a()
#don't want function_b()'s noise -> ....
#somehow filter-out function_b's logging
function_b()
Se ho scalato questo semplice esempio a più moduli e più funcs per modulo, sarei preoccupato per un sacco di logger;
Posso mantenere fino a 1 logger per modulo? Nota che i messaggi di log sono "strutturati", cioè se la funzione che sta registrando sta facendo un lavoro di analisi, tutti contengono un prefisso logger.debug ("parsing: xxx") - posso in qualche modo con una singola linea appena chiusa -non tutti i messaggi "parsing" (indipendentemente dal modulo/funzione che emettono il messaggio?)
Ho dovuto aggiungere il filtro al gestore. –