Logging-systeem
Dit document legt uit hoe je de logfunctie van LibreChat gebruikt, die fout- en debug-logs opslaat in de map `/api/logs`. Je kunt deze logs gebruiken om problemen op te lossen, je server te monitoren en bugs te rapporteren. Je kunt debug-logs ook uitschakelen als je ruimte wilt besparen.
Algemeen
LibreChat heeft centrale logging ingebouwd in de backend (api).
- Bij de Docker-installatie worden logbestanden opgeslagen in
/logs
- Bij de npm installatie worden logbestanden opgeslagen in
/api/logs
Foutlogboeken worden standaard opgeslagen. Debug-logboeken zijn standaard ingeschakeld, maar kunnen worden uitgeschakeld indien niet gewenst.
Hiermee kun je je server monitoren via externe tools die logbestanden inspecteren, zoals de ELK stack.
Debug-logs zijn essentieel voor ontwikkelaarswerk en het oplossen van problemen. Als je problemen ondervindt bij het uitvoeren van LibreChat, reproduceer deze dan zo nauwkeurig mogelijk en meld het probleem met je logs die je kunt vinden in ./api/logs/debug-%DATE%.log.
Foutlogboeken worden ook op dezelfde locatie opgeslagen: ./api/logs/error-%DATE%.log. Als je Meilisearch hebt geconfigureerd, is er ook een apart logbestand hiervoor.
Let op:
Let op: Logs worden elke 14 dagen geroteerd, dus je genereert één foutenlogbestand, één debug-logbestand en één meiliSync-logbestand per 14 dagen. Fouten zijn ook aanwezig in debug-logbestanden, maar de foutenlogbestanden bieden stack traces en meer details.
Setup
- Schakel debug-logs in of uit met de volgende omgevingsvariabele. Standaard worden debug-logs gegenereerd, zelfs als je deze variabele nooit instelt, maar je hebt de optie om ze uit te schakelen door deze op
FALSEin te stellen.
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_LOGGING | boolean | Houd debug-logs actief. | DEBUG_LOGGING=true |
Let op: het wordt aanbevolen om debug-logs uit te schakelen in een productieomgeving.
- Voor uitgebreide serveruitvoer in de console/terminal, kun je het volgende instellen op
TRUE:
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_CONSOLE | boolean | Schakel uitgebreide console/stdout-logs in in hetzelfde formaat als debug-logs in bestanden. | DEBUG_CONSOLE=false |
Dit wordt echter niet aanbevolen, aangezien de outputs behoorlijk uitgebreid kunnen zijn. Het is standaard uitgeschakeld en moet spaarzaam worden ingeschakeld.
- Bij het verwerken van console-logs in cloud-implementaties (zoals GCP of AWS), zal het inschakelen hiervan de logs dumpen met een UTC-tijdstempel en ze formatteren als JSON.
| Key | Type | Description | Example |
|---|---|---|---|
| CONSOLE_JSON | boolean | Schakel uitgebreide JSON-console/stdout-logs in die geschikt zijn voor cloud-implementaties zoals GCP/AWS. | CONSOLE_JSON=false |
Standaard wordt de lengte van de JSON-string afgekapt tot 255 tekens. Je kunt dit configureren met de volgende omgevingsvariabele:
| Key | Type | Description | Example |
|---|---|---|---|
| CONSOLE_JSON_STRING_LENGTH | number | Configureer de afkappingsgrootte voor stringwaarden in JSON console/stdout-logs. Standaard: 255. | # CONSOLE_JSON_STRING_LENGTH=255 |
- File-backed log transports zijn standaard ingeschakeld. Stel
LOG_TO_FILE=falsein als uw implementatie alleen logs naar stdout/stderr moet sturen.
| Key | Type | Description | Example |
|---|---|---|---|
| LOG_TO_FILE | boolean | Stel in op false om Winston-transports op basis van bestanden uit te schakelen. | LOG_TO_FILE=true |
OpenTelemetry Tracing
LibreChat kan backend OpenTelemetry-traces genereren voor server, database, Redis en uitgaande HTTP-zichtbaarheid. Spans op Redis-opdrachtniveau zijn optioneel, zodat standaard traces op een hoog niveau blijven. Dit staat los van Langfuse, wat de aanbevolen optie blijft voor GenAI-specifieke prompt- en model-observability.
| Key | Type | Description | Example |
|---|---|---|---|
| OTEL_TRACING_ENABLED | boolean | Schakel backend OpenTelemetry-tracing in. | # OTEL_TRACING_ENABLED=false |
| OTEL_SERVICE_NAME | string | Servicenaam gerapporteerd aan OpenTelemetry. Standaard: librechat. | # OTEL_SERVICE_NAME=librechat |
| OTEL_SERVICE_VERSION | string | Serviceversie gerapporteerd aan OpenTelemetry. | # 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-specifiek OTLP endpoint. | # OTEL_EXPORTER_OTLP_TRACES_ENDPOINT= |
| OTEL_EXPORTER_OTLP_HEADERS | string | OTLP exporter headers. | # OTEL_EXPORTER_OTLP_HEADERS= |
| OTEL_TRACES_EXPORTER | string | Selectie van trace-exporter. | # OTEL_TRACES_EXPORTER=otlp |
| OTEL_TRACES_SAMPLER | string | OpenTelemetry trace sampler. | # OTEL_TRACES_SAMPLER=parentbased_always_on |
| OTEL_LOG_LEVEL | string | OpenTelemetry SDK logniveau. | # OTEL_LOG_LEVEL=INFO |
| OTEL_SDK_DISABLED | boolean | Schakel de OpenTelemetry SDK uit, zelfs wanneer tracing is ingeschakeld. | # OTEL_SDK_DISABLED=false |
| OTEL_IOREDIS_TRACING_ENABLED | boolean | Schakel Redis command-level spans in. Standaard uitgeschakeld om backend-traces op hoog niveau te houden. | # OTEL_IOREDIS_TRACING_ENABLED=false |
Hoe is deze gids?