Configurar logging
Você não precisa criar uma fonte de log para enviar logs da integração AppSignal for Python. Uma fonte de log “application” será criada automaticamente. Ao usar o modo collector, o AppSignal instrumenta automaticamente o módulologging embutido do Python via OpenTelemetry, anexando um handler ao logger raiz.
Desabilitando a instrumentação de logging
A instrumentação para o módulologging do Python pode ser desabilitada usando a opção de configuração disable_default_instrumentations:
logging por meio da anexação de um handler ao logger raiz, o que significa que os logs enviados ao módulo logging do Python não serão mais capturados pelo AppSignal.
Você ainda pode enviar logs diretamente usando a API de logs do OpenTelemetry, conforme descrito na seção Enviando logs com OpenTelemetry abaixo.
Anexando handlers manualmente
Quando a instrumentação automática está desabilitada, você pode anexar oLoggingHandler do OpenTelemetry a loggers específicos por conta própria, em vez de depender do AppSignal adicioná-lo ao logger raiz:
Nível de log
O módulologging do Python tem como padrão WARNING, o que significa que mensagens INFO e DEBUG não são capturadas por padrão. Para capturar mensagens de severidade mais baixa, defina explicitamente o nível do logger raiz:
Quais logs são capturados
O AppSignal captura logs enviados ao logger raiz e a qualquer logger que propague para ele. A propagação é controlada pelo atributopropagate em cada logger, que tem como padrão True no Python.
Loggers com propagate=False não terão suas mensagens capturadas pelo AppSignal.
Configuração de Framework
Django
O Django configura alguns loggers compropagate=False por padrão, o que impede que eles cheguem ao AppSignal. Sobrescreva-os em settings.py para reativar a propagação:
"propagate": True garante que as mensagens do logger cheguem ao logger raiz, onde o handler do AppSignal está anexado.
Anexando handlers manualmente
Como alternativa, você pode anexar oLoggingHandler diretamente aos loggers do Django em vez de depender da propagação para o logger raiz:
Celery
O Celery faz fork dos processos worker, então o AppSignal precisa ser iniciado para cada fork. Use o sinalworker_process_init para reinicializar o AppSignal e configurar o logging em cada processo worker. Veja a página de instrumentação do Celery para mais detalhes sobre como instrumentar tarefas do Celery.
Enviando logs com OpenTelemetry
Você também pode enviar logs diretamente usando a API de logs do OpenTelemetry, sem passar pelo módulologging do Python: