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

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
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log
  • Bij de npm installatie worden logbestanden opgeslagen in /api/logs
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log

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 FALSE in te stellen.
KeyTypeDescriptionExample
DEBUG_LOGGINGbooleanHoud 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:
KeyTypeDescriptionExample
DEBUG_CONSOLEbooleanSchakel 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.
KeyTypeDescriptionExample
CONSOLE_JSONbooleanSchakel 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:

KeyTypeDescriptionExample
CONSOLE_JSON_STRING_LENGTHnumberConfigureer 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=false in als uw implementatie alleen logs naar stdout/stderr moet sturen.
KeyTypeDescriptionExample
LOG_TO_FILEbooleanStel 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.

KeyTypeDescriptionExample
OTEL_TRACING_ENABLEDbooleanSchakel backend OpenTelemetry-tracing in.# OTEL_TRACING_ENABLED=false
OTEL_SERVICE_NAMEstringServicenaam gerapporteerd aan OpenTelemetry. Standaard: librechat.# OTEL_SERVICE_NAME=librechat
OTEL_SERVICE_VERSIONstringServiceversie gerapporteerd aan OpenTelemetry.# OTEL_SERVICE_VERSION=
OTEL_EXPORTER_OTLP_ENDPOINTstringBasis OTLP exporter endpoint.# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTstringTrace-specifiek OTLP endpoint.# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
OTEL_EXPORTER_OTLP_HEADERSstringOTLP exporter headers.# OTEL_EXPORTER_OTLP_HEADERS=
OTEL_TRACES_EXPORTERstringSelectie van trace-exporter.# OTEL_TRACES_EXPORTER=otlp
OTEL_TRACES_SAMPLERstringOpenTelemetry trace sampler.# OTEL_TRACES_SAMPLER=parentbased_always_on
OTEL_LOG_LEVELstringOpenTelemetry SDK logniveau.# OTEL_LOG_LEVEL=INFO
OTEL_SDK_DISABLEDbooleanSchakel de OpenTelemetry SDK uit, zelfs wanneer tracing is ingeschakeld.# OTEL_SDK_DISABLED=false
OTEL_IOREDIS_TRACING_ENABLEDbooleanSchakel Redis command-level spans in. Standaard uitgeschakeld om backend-traces op hoog niveau te houden.# OTEL_IOREDIS_TRACING_ENABLED=false

Hoe is deze gids?