Estoy usando el registro (registro de importación) para registrar mensajes.logging con filtros
Dentro de 1 único módulo, estoy registrando mensajes en el nivel de depuración (my_logger.debug ('msg'));
Algunos de estos mensajes de depuración provienen de function_a() y otros de function_b(); Me gustaría poder habilitar/deshabilitar el registro en función de si provienen de a o de b;
Supongo que tengo que usar el mecanismo de filtrado de Logging.
¿Puede alguien mostrarme cómo debería instrumentarse el siguiente código para hacer lo que quiero? Gracias.
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()
Si escalé este sencillo ejemplo para más módulos y más funcs por módulo, estaría preocupado por un montón de madereros;
¿Puedo mantenerlo en 1 registrador por módulo? Tenga en cuenta que los mensajes de registro están "estructurados", es decir, si la (s) función (es) iniciar sesión están realizando algún trabajo de análisis, todos ellos contienen un prefijo logger.debug ("análisis: xxx") - ¿puedo de alguna manera con solo cerrar una línea? -off de todos los mensajes "de análisis" (independientemente del módulo/función que emita el mensaje?)
Tuve que agregar el filtro al controlador. –