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
/logsgespeichert.
- Bei der npm-Installation werden Protokolldateien unter
/api/logsgespeichert.
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
FALSEsetzen.
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_LOGGING | boolean | Debug-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
TRUEsetzen:
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_CONSOLE | boolean | Aktiviere 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.
| Key | Type | Description | Example |
|---|---|---|---|
| CONSOLE_JSON | boolean | Aktiviere 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:
| Key | Type | Description | Example |
|---|---|---|---|
| CONSOLE_JSON_STRING_LENGTH | number | Konfiguriere 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.
| Key | Type | Description | Example |
|---|---|---|---|
| LOG_TO_FILE | boolean | Auf 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.
| Key | Type | Description | Example |
|---|---|---|---|
| OTEL_TRACING_ENABLED | boolean | Backend-OpenTelemetry-Tracing aktivieren. | # OTEL_TRACING_ENABLED=false |
| OTEL_SERVICE_NAME | string | Dienstname, der an OpenTelemetry gemeldet wird. Standard: librechat. | # OTEL_SERVICE_NAME=librechat |
| OTEL_SERVICE_VERSION | string | An OpenTelemetry gemeldete Service-Version. | # OTEL_SERVICE_VERSION= |
| OTEL_EXPORTER_OTLP_ENDPOINT | string | Basis-OTLP-Exporter-endpoint. | # OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 |
| OTEL_EXPORTER_OTLP_TRACES_ENDPOINT | string | Trace-spezifischer OTLP endpoint. | # OTEL_EXPORTER_OTLP_TRACES_ENDPOINT= |
| OTEL_EXPORTER_OTLP_HEADERS | string | OTLP-Exporter-Header | # OTEL_EXPORTER_OTLP_HEADERS= |
| OTEL_TRACES_EXPORTER | string | Auswahl des Trace-Exporters. | # OTEL_TRACES_EXPORTER=otlp |
| OTEL_TRACES_SAMPLER | string | OpenTelemetry Trace-Sampler. | # OTEL_TRACES_SAMPLER=parentbased_always_on |
| OTEL_LOG_LEVEL | string | OpenTelemetry SDK-Protokollebene. | # OTEL_LOG_LEVEL=INFO |
| OTEL_SDK_DISABLED | boolean | Deaktivieren Sie das OpenTelemetry SDK, selbst wenn das Tracing aktiviert ist. | # OTEL_SDK_DISABLED=false |
| OTEL_IOREDIS_TRACING_ENABLED | boolean | Aktiviert 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?