Logging konfigurieren
Sie müssen keine Log-Quelle erstellen, um Logs aus der AppSignal for Python-Integration zu senden. Eine “application”-Log-Quelle wird automatisch erstellt. Im Collector-Modus instrumentiert AppSignal automatisch das integriertelogging-Modul von Python über OpenTelemetry und hängt einen Handler an den Root-Logger.
Logging-Instrumentierung deaktivieren
Die Instrumentierung deslogging-Moduls von Python kann mit der Konfigurationsoption disable_default_instrumentations deaktiviert werden:
logging-Moduls durch Anhängen eines Handlers an den Root-Logger, was bedeutet, dass Logs, die an das logging-Modul von Python gesendet werden, nicht mehr von AppSignal erfasst werden.
Sie können Logs weiterhin direkt über die OpenTelemetry Logs API senden, wie im Abschnitt Logs mit OpenTelemetry senden unten beschrieben.
Handler manuell anhängen
Wenn die automatische Instrumentierung deaktiviert ist, können Sie den OpenTelemetry-LoggingHandler selbst an bestimmte Logger anhängen, anstatt darauf zu setzen, dass AppSignal ihn an den Root-Logger anhängt:
Log-Level
Daslogging-Modul von Python verwendet standardmäßig WARNING, was bedeutet, dass INFO- und DEBUG-Nachrichten standardmäßig nicht erfasst werden. Um Nachrichten mit niedrigerer Severity zu erfassen, setzen Sie das Level des Root-Loggers explizit:
Welche Logs erfasst werden
AppSignal erfasst Logs, die an den Root-Logger gesendet werden, sowie an jeden Logger, der an ihn propagiert. Die Propagierung wird durch das Attributpropagate an jedem Logger gesteuert, das in Python standardmäßig auf True gesetzt ist.
Logger mit propagate=False lassen ihre Nachrichten nicht von AppSignal erfassen.
Framework-Setup
Django
Django konfiguriert einige Logger standardmäßig mitpropagate=False, was verhindert, dass sie AppSignal erreichen. Überschreiben Sie diese in settings.py, um die Propagierung wieder zu aktivieren:
"propagate": True stellt sicher, dass die Nachrichten des Loggers den Root-Logger erreichen, an den der Handler von AppSignal angehängt ist.
Handler manuell anhängen
Alternativ können Sie denLoggingHandler direkt an die Logger von Django anhängen, anstatt sich auf die Propagierung zum Root-Logger zu verlassen:
Celery
Celery forkt Worker-Prozesse, daher muss AppSignal für jeden Fork gestartet werden. Verwenden Sie dasworker_process_init-Signal, um AppSignal neu zu initialisieren und Logging in jedem Worker-Prozess zu konfigurieren. Weitere Details zur Instrumentierung von Celery-Tasks finden Sie auf der Seite zur Celery-Instrumentierung.
Logs mit OpenTelemetry senden
Sie können Logs auch direkt über die OpenTelemetry Logs API senden, ohne den Umweg über daslogging-Modul von Python: