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

Protokollierungssystem

Dieses Dokument erklärt, wie die Logging-Funktion von LibreChat verwendet wird, die Fehler- und Debug-Logs im Ordner `/api/logs` speichert. Sie können diese Logs nutzen, um Probleme zu beheben, Ihren Server zu überwachen und Fehler zu melden. Sie können Debug-Logs auch deaktivieren, wenn Sie Speicherplatz sparen möchten.

Allgemein

LibreChat verfügt über eine zentrale Protokollierung, die in das Backend (api) integriert ist.

  • Bei der Docker-Installation werden Protokolldateien in /logs gespeichert.
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log
  • Bei der npm-Installation werden Protokolldateien unter /api/logs gespeichert.
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log

Fehlerprotokolle werden standardmäßig gespeichert. Debug-Protokolle sind standardmäßig aktiviert, können jedoch deaktiviert werden, falls dies nicht gewünscht ist.

Dies ermöglicht es Ihnen, Ihren Server über externe Tools zu überwachen, die Protokolldateien untersuchen, wie zum Beispiel den ELK stack.

Debug-Logs sind für die Entwicklungsarbeit und die Fehlerbehebung unerlässlich. Wenn Sie bei der Ausführung von LibreChat auf Probleme stoßen, reproduzieren Sie diese so genau wie möglich und melden Sie das Problem unter Angabe Ihrer Logs, die Sie unter ./api/logs/debug-%DATE%.log finden.

Fehlerprotokolle werden ebenfalls am selben Ort gespeichert: ./api/logs/error-%DATE%.log. Wenn Sie Meilisearch konfiguriert haben, gibt es auch dafür eine separate Protokolldatei.

Hinweis:

Hinweis: Protokolle werden alle 14 Tage rotiert, sodass Sie alle 14 Tage eine Fehlerprotokolldatei, eine Debug-Protokolldatei und eine meiliSync-Protokolldatei generieren. Fehler sind auch in den Debug-Protokolldateien enthalten, jedoch bieten die Fehlerprotokolldateien Stack-Traces und detailliertere Informationen.

Einrichtung

  • Schalten Sie Debug-Protokolle mit der folgenden Umgebungsvariable um. Standardmäßig werden Debug-Protokolle generiert, auch wenn Sie diese Variable nie setzen, aber Sie haben die Möglichkeit, sie zu deaktivieren, indem Sie sie auf FALSE setzen.
KeyTypeDescriptionExample
DEBUG_LOGGINGbooleanDebug-Logs aktiviert lassen.DEBUG_LOGGING=true

Hinweis: Es wird empfohlen, Debug-Logs in einer Produktionsumgebung zu deaktivieren.

  • Für eine ausführliche Server-Ausgabe in der Konsole/im Terminal können Sie Folgendes auf TRUE setzen:
KeyTypeDescriptionExample
DEBUG_CONSOLEbooleanAktiviere ausführliche Konsolen-/stdout-Protokolle im selben Format wie Datei-Debug-Protokolle.DEBUG_CONSOLE=false

Dies wird jedoch nicht empfohlen, da die Ausgaben recht ausführlich sein können. Es ist standardmäßig deaktiviert und sollte nur sparsam aktiviert werden.

  • Wenn Sie Konsolenprotokolle in Cloud-Bereitstellungen (wie GCP oder AWS) verarbeiten, werden diese durch Aktivierung dieser Option mit einem UTC-Zeitstempel versehen und als JSON formatiert ausgegeben.
KeyTypeDescriptionExample
CONSOLE_JSONbooleanAktiviere ausführliche JSON-Konsolen-/stdout-Protokolle, die für Cloud-Bereitstellungen wie GCP/AWS geeignet sind.CONSOLE_JSON=false

Standardmäßig ist die Länge der JSON-Zeichenfolge auf 255 Zeichen begrenzt. Sie können dies mit der folgenden Umgebungsvariable konfigurieren:

KeyTypeDescriptionExample
CONSOLE_JSON_STRING_LENGTHnumberKonfiguriere die Kürzungslänge für String-Werte in JSON-Konsolen-/stdout-Logs. Standard: 255.# CONSOLE_JSON_STRING_LENGTH=255
  • Dateibasierte Log-Transporte sind standardmäßig aktiviert. Setzen Sie LOG_TO_FILE=false, wenn Ihre Bereitstellung Logs nur an stdout/stderr ausgeben soll.
KeyTypeDescriptionExample
LOG_TO_FILEbooleanAuf false setzen, um dateibasierte Winston-Transports zu deaktivieren.LOG_TO_FILE=true

OpenTelemetry Tracing

LibreChat kann Backend-OpenTelemetry-Traces für Server, Datenbank, Redis und ausgehende HTTP-Sichtbarkeit ausgeben. Spans auf Redis-Befehlsebene sind optional, sodass die Standard-Traces auf einer hohen Ebene bleiben. Dies ist unabhängig von Langfuse, das weiterhin die empfohlene Option für die Beobachtbarkeit von GenAI-spezifischen Prompts und Modellen bleibt.

KeyTypeDescriptionExample
OTEL_TRACING_ENABLEDbooleanBackend-OpenTelemetry-Tracing aktivieren.# OTEL_TRACING_ENABLED=false
OTEL_SERVICE_NAMEstringDienstname, der an OpenTelemetry gemeldet wird. Standard: librechat.# OTEL_SERVICE_NAME=librechat
OTEL_SERVICE_VERSIONstringAn OpenTelemetry gemeldete Service-Version.# OTEL_SERVICE_VERSION=
OTEL_EXPORTER_OTLP_ENDPOINTstringBasis-OTLP-Exporter-endpoint.# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTstringTrace-spezifischer OTLP endpoint.# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
OTEL_EXPORTER_OTLP_HEADERSstringOTLP-Exporter-Header# OTEL_EXPORTER_OTLP_HEADERS=
OTEL_TRACES_EXPORTERstringAuswahl des Trace-Exporters.# OTEL_TRACES_EXPORTER=otlp
OTEL_TRACES_SAMPLERstringOpenTelemetry Trace-Sampler.# OTEL_TRACES_SAMPLER=parentbased_always_on
OTEL_LOG_LEVELstringOpenTelemetry SDK-Protokollebene.# OTEL_LOG_LEVEL=INFO
OTEL_SDK_DISABLEDbooleanDeaktivieren Sie das OpenTelemetry SDK, selbst wenn das Tracing aktiviert ist.# OTEL_SDK_DISABLED=false
OTEL_IOREDIS_TRACING_ENABLEDbooleanAktiviert Redis-Befehlsebenen-Spans. Standardmäßig deaktiviert, um Backend-Traces auf einer übergeordneten Ebene zu halten.# OTEL_IOREDIS_TRACING_ENABLED=false

Wie finden Sie diese Anleitung?