Système de journalisation
Ce document explique comment utiliser la fonctionnalité de journalisation de LibreChat, qui enregistre les journaux d'erreurs et de débogage dans le dossier `/api/logs`. Vous pouvez utiliser ces journaux pour résoudre des problèmes, surveiller votre serveur et signaler des bugs. Vous pouvez également désactiver les journaux de débogage si vous souhaitez économiser de l'espace.
Général
LibreChat dispose d'une journalisation centrale intégrée à son backend (api).
- Avec l'installation Docker, les fichiers journaux sont enregistrés dans
/logs
- Avec l'installation npm, les fichiers journaux sont enregistrés dans
/api/logs
Les journaux d'erreurs sont enregistrés par défaut. Les journaux de débogage sont activés par défaut, mais peuvent être désactivés si vous ne les souhaitez pas.
Cela vous permet de surveiller votre serveur via des outils externes qui inspectent les fichiers journaux, tels que la pile ELK.
Les journaux de débogage sont essentiels au travail des développeurs et à la résolution de problèmes. Si vous rencontrez des difficultés lors de l'exécution de LibreChat, reproduisez-les aussi fidèlement que possible et signalez le problème en joignant vos journaux situés dans ./api/logs/debug-%DATE%.log.
Les journaux d'erreurs sont également enregistrés au même emplacement : ./api/logs/error-%DATE%.log. Si vous avez configuré Meilisearch, il existe également un fichier journal distinct pour celui-ci.
Remarque :
Remarque : Les journaux sont archivés sur une base de 14 jours, vous générerez donc un fichier de journal d'erreurs, un fichier de journal de débogage et un fichier de journal meiliSync tous les 14 jours. Les erreurs seront également présentes dans les fichiers de journal de débogage, mais les fichiers de journal d'erreurs fourniront des traces de pile et plus de détails.
Configuration
- Activez ou désactivez les journaux de débogage avec la variable d'environnement suivante. Par défaut, même si vous ne définissez jamais cette variable, les journaux de débogage seront générés, mais vous avez la possibilité de les désactiver en la réglant sur
FALSE.
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_LOGGING | boolean | Garder les journaux de débogage actifs. | DEBUG_LOGGING=true |
Remarque : il est recommandé de désactiver les journaux de débogage dans un environnement de production.
- Pour une sortie serveur détaillée dans la console/le terminal, vous pouvez définir ce qui suit sur
TRUE:
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_CONSOLE | boolean | Activer les logs détaillés de la console/stdout dans le même format que les logs de débogage des fichiers. | DEBUG_CONSOLE=false |
Ceci n'est cependant pas recommandé, car les sorties peuvent être assez verbeuses. C'est désactivé par défaut et devrait être activé avec parcimonie.
- Lors de la gestion des journaux de console dans les déploiements cloud (tels que GCP ou AWS), l'activation de cette option permettra d'exporter les journaux avec un horodatage UTC et de les formater au format JSON.
| Key | Type | Description | Example |
|---|---|---|---|
| CONSOLE_JSON | boolean | Activer les journaux de console/stdout JSON détaillés adaptés aux déploiements cloud comme GCP/AWS. | CONSOLE_JSON=false |
Par défaut, la longueur de la chaîne JSON est tronquée à 255 caractères. Vous pouvez configurer cela avec la variable d'environnement suivante :
| Key | Type | Description | Example |
|---|---|---|---|
| CONSOLE_JSON_STRING_LENGTH | number | Configurez la taille de troncature pour les valeurs de chaîne dans les journaux de la console/stdout au format JSON. Par défaut : 255. | # CONSOLE_JSON_STRING_LENGTH=255 |
- Les transports de journaux basés sur des fichiers sont activés par défaut. Définissez
LOG_TO_FILE=falsesi votre déploiement ne doit émettre des journaux que vers stdout/stderr.
| Key | Type | Description | Example |
|---|---|---|---|
| LOG_TO_FILE | boolean | Définir sur false pour désactiver les transports Winston basés sur des fichiers. | LOG_TO_FILE=true |
Traçage OpenTelemetry
LibreChat peut émettre des traces OpenTelemetry backend pour la visibilité du serveur, de la base de données, de Redis et des requêtes HTTP sortantes. Les spans au niveau des commandes Redis sont optionnelles afin que les traces par défaut restent de haut niveau. Ceci est distinct de Langfuse, qui demeure l'option recommandée pour l'observabilité des prompts et des modèles GenAI.
| Key | Type | Description | Example |
|---|---|---|---|
| OTEL_TRACING_ENABLED | boolean | Activer le traçage OpenTelemetry du backend. | # OTEL_TRACING_ENABLED=false |
| OTEL_SERVICE_NAME | string | Nom du service rapporté à OpenTelemetry. Par défaut : librechat. | # OTEL_SERVICE_NAME=librechat |
| OTEL_SERVICE_VERSION | string | Version du service rapportée à OpenTelemetry. | # OTEL_SERVICE_VERSION= |
| OTEL_EXPORTER_OTLP_ENDPOINT | string | Point de terminaison de l'exportateur OTLP de base. | # OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 |
| OTEL_EXPORTER_OTLP_TRACES_ENDPOINT | string | Point de terminaison OTLP spécifique aux traces. | # OTEL_EXPORTER_OTLP_TRACES_ENDPOINT= |
| OTEL_EXPORTER_OTLP_HEADERS | string | En-têtes de l'exportateur OTLP. | # OTEL_EXPORTER_OTLP_HEADERS= |
| OTEL_TRACES_EXPORTER | string | Sélection de l'exportateur de traces. | # OTEL_TRACES_EXPORTER=otlp |
| OTEL_TRACES_SAMPLER | string | Échantillonneur de traces OpenTelemetry. | # OTEL_TRACES_SAMPLER=parentbased_always_on |
| OTEL_LOG_LEVEL | string | Niveau de journalisation du SDK OpenTelemetry. | # OTEL_LOG_LEVEL=INFO |
| OTEL_SDK_DISABLED | boolean | Désactiver le SDK OpenTelemetry même lorsque le traçage est activé. | # OTEL_SDK_DISABLED=false |
| OTEL_IOREDIS_TRACING_ENABLED | boolean | Activer les spans au niveau des commandes Redis. Désactivé par défaut pour maintenir les traces du backend à un haut niveau. | # OTEL_IOREDIS_TRACING_ENABLED=false |
Que pensez-vous de ce guide ?