Tengo muchas dificultades para enviar registros a Azure Application Insights. Cuando AzureLogHandler se inicializa y se agrega a un registrador secundario dentro de app.py , funciona bien. Sin embargo, el problema comienza fuera de app.py cuando voy a crear una nueva instancia de registrador, los registros no se emiten a Azure. Muestra:
# app.py logger = logging.getLogger(__name__) logger.addHandler(AzureLogHandler(connection_string="")) logger.info("This is emitted") # main.py logger = logging.getLogger(__name__) logger.addHandler(AzureLogHandler(connection_string="")) logger.info("This is NOT emitted")La única forma en que he logrado que funcione es importando la instancia del registrador que creé en app.py, que es subóptima:
# sub-optimal - does not permit me to create a log hierarchy # main.py from app.py import logger logger.info("This works but restricts me")Idealmente, me gustaría implementar opencensus AzureLogHandler con la menor interferencia posible con el proyecto, por ejemplo, agregar AzureLogHandler al registrador raíz al principio y luego derivar todos los registradores secundarios sin necesidad de adjuntar el controlador por separado:
# app.py logging.basicConfig(handlers=[AzurelogHandler(connection_string="")) logger = logging.getLogger(__name__) logger.debug("so simple!") # main.py logger = logging.getLogger(__name__) logger.debug("so simple!")Nota: La solución debe funcionar con Asyncronous FastAPI. Esto parece complicar las cosas, ya que lo he implementado para Flask y otros servicios muy bien.
¡Gracias!