Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

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
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log
  • Avec l'installation npm, les fichiers journaux sont enregistrés dans /api/logs
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log

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.
KeyTypeDescriptionExample
DEBUG_LOGGINGbooleanGarder 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 :
KeyTypeDescriptionExample
DEBUG_CONSOLEbooleanActiver 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.
KeyTypeDescriptionExample
CONSOLE_JSONbooleanActiver 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 :

KeyTypeDescriptionExample
CONSOLE_JSON_STRING_LENGTHnumberConfigurez 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=false si votre déploiement ne doit émettre des journaux que vers stdout/stderr.
KeyTypeDescriptionExample
LOG_TO_FILEbooleanDé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.

KeyTypeDescriptionExample
OTEL_TRACING_ENABLEDbooleanActiver le traçage OpenTelemetry du backend.# OTEL_TRACING_ENABLED=false
OTEL_SERVICE_NAMEstringNom du service rapporté à OpenTelemetry. Par défaut : librechat.# OTEL_SERVICE_NAME=librechat
OTEL_SERVICE_VERSIONstringVersion du service rapportée à OpenTelemetry.# OTEL_SERVICE_VERSION=
OTEL_EXPORTER_OTLP_ENDPOINTstringPoint de terminaison de l'exportateur OTLP de base.# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTstringPoint de terminaison OTLP spécifique aux traces.# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
OTEL_EXPORTER_OTLP_HEADERSstringEn-têtes de l'exportateur OTLP.# OTEL_EXPORTER_OTLP_HEADERS=
OTEL_TRACES_EXPORTERstringSélection de l'exportateur de traces.# OTEL_TRACES_EXPORTER=otlp
OTEL_TRACES_SAMPLERstringÉchantillonneur de traces OpenTelemetry.# OTEL_TRACES_SAMPLER=parentbased_always_on
OTEL_LOG_LEVELstringNiveau de journalisation du SDK OpenTelemetry.# OTEL_LOG_LEVEL=INFO
OTEL_SDK_DISABLEDbooleanDésactiver le SDK OpenTelemetry même lorsque le traçage est activé.# OTEL_SDK_DISABLED=false
OTEL_IOREDIS_TRACING_ENABLEDbooleanActiver 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 ?