Logging configureren
U hoeft geen logbron aan te maken om logs te versturen vanuit de AppSignal for Python-integratie. Er wordt automatisch een “application”-logbron aangemaakt. Bij gebruik van collector mode instrumenteert AppSignal automatisch de ingebouwdelogging-module van Python via OpenTelemetry, door een handler aan de root logger te koppelen.
Logging-instrumentatie uitschakelen
Instrumentatie voor delogging-module van Python kan worden uitgeschakeld via de configuratieoptie disable_default_instrumentations:
logging-module uit door een handler aan de root logger te koppelen, wat betekent dat logs die naar de logging-module van Python worden gestuurd niet langer door AppSignal worden opgevangen.
U kunt nog steeds logs direct versturen via de OpenTelemetry logs-API, zoals beschreven in de sectie Logs versturen met OpenTelemetry hieronder.
Handlers handmatig koppelen
Wanneer automatische instrumentatie is uitgeschakeld, kunt u de OpenTelemetryLoggingHandler zelf aan specifieke loggers koppelen, in plaats van te vertrouwen op AppSignal die deze aan de root logger toevoegt:
Log-niveau
Delogging-module van Python heeft standaard WARNING, wat betekent dat INFO- en DEBUG-berichten standaard niet worden vastgelegd. Om berichten met een lagere severity vast te leggen, stelt u het niveau van de root logger expliciet in:
Welke logs worden vastgelegd
AppSignal legt logs vast die naar de root logger worden gestuurd en elke logger die ernaar propageert. Propagatie wordt bestuurd door hetpropagate-attribuut op elke logger, dat in Python standaard True is.
Loggers met propagate=False zullen niet hun berichten door AppSignal laten vastleggen.
Framework-installatie
Django
Django configureert sommige loggers standaard metpropagate=False, waardoor ze AppSignal niet bereiken. Overschrijf deze in settings.py om propagatie opnieuw in te schakelen:
"propagate": True zorgt ervoor dat de berichten van de logger de root logger bereiken, waaraan de handler van AppSignal is gekoppeld.
Handlers handmatig koppelen
Als alternatief kunt u deLoggingHandler rechtstreeks aan Django’s loggers koppelen in plaats van te vertrouwen op propagatie naar de root logger:
Celery
Celery fork-werkprocessen, dus AppSignal moet voor elke fork worden gestart. Gebruik het signaalworker_process_init om AppSignal opnieuw te initialiseren en logging in elk werkproces te configureren. Zie de Celery-instrumentatiepagina voor meer details over het instrumenteren van Celery-taken.
Logs versturen met OpenTelemetry
U kunt ook logs direct versturen via de OpenTelemetry logs-API, zonder delogging-module van Python te gebruiken: