Configurer la journalisation
Vous n’avez pas besoin de créer une source de journaux pour envoyer des journaux depuis l’intégration AppSignal for Python. Une source de journaux “application” sera créée automatiquement. Lors de l’utilisation du mode collector, AppSignal instrumente automatiquement le modulelogging intégré de Python via OpenTelemetry, en attachant un handler au logger racine.
Désactivation de l’instrumentation de journalisation
L’instrumentation du modulelogging de Python peut être désactivée à l’aide de l’option de configuration disable_default_instrumentations :
logging en attachant un handler au logger racine, ce qui signifie que les journaux envoyés au module logging de Python ne seront plus capturés par AppSignal.
Vous pouvez toujours envoyer des journaux directement en utilisant l’API logs d’OpenTelemetry, comme décrit dans la section Envoi de journaux avec OpenTelemetry ci-dessous.
Attacher des handlers manuellement
Lorsque l’instrumentation automatique est désactivée, vous pouvez attacher leLoggingHandler d’OpenTelemetry à des loggers spécifiques vous-même, plutôt que de compter sur AppSignal pour l’ajouter au logger racine :
Niveau de journal
Le modulelogging de Python est par défaut à WARNING, ce qui signifie que les messages INFO et DEBUG ne sont pas capturés par défaut. Pour capturer les messages de sévérité inférieure, définissez explicitement le niveau du logger racine :
Quels journaux sont capturés
AppSignal capture les journaux envoyés au logger racine et à tout logger qui s’y propage. La propagation est contrôlée par l’attributpropagate sur chaque logger, qui est par défaut à True en Python.
Les loggers avec propagate=False n’auront pas leurs messages capturés par AppSignal.
Configuration du framework
Django
Django configure certains loggers avecpropagate=False par défaut, ce qui les empêche d’atteindre AppSignal. Remplacez-les dans settings.py pour réactiver la propagation :
"propagate": True garantit que les messages du logger atteignent le logger racine, où le handler d’AppSignal est attaché.
Attacher des handlers manuellement
Vous pouvez également attacher leLoggingHandler directement aux loggers de Django au lieu de compter sur la propagation vers le logger racine :
Celery
Celery fork des processus worker, donc AppSignal doit être démarré pour chaque fork. Utilisez le signalworker_process_init pour réinitialiser AppSignal et configurer la journalisation dans chaque processus worker. Consultez la page d’instrumentation Celery pour plus de détails sur l’instrumentation des tâches Celery.
Envoi de journaux avec OpenTelemetry
Vous pouvez également envoyer des journaux directement en utilisant l’API logs d’OpenTelemetry, sans passer par le modulelogging de Python :