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

Sistema di logging

Questo documento spiega come utilizzare la funzionalità di logging di LibreChat, che salva i log di errore e di debug nella cartella `/api/logs`. Puoi utilizzare questi log per risolvere problemi, monitorare il tuo server e segnalare bug. Puoi anche disabilitare i log di debug se desideri risparmiare spazio.

Generale

LibreChat ha un sistema di logging centrale integrato nel suo backend (api).

  • Con l'installazione docker, i file di log vengono salvati in /logs
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log
  • Con l'installazione npm, i file di log vengono salvati in /api/logs
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log

I log di errore vengono salvati per impostazione predefinita. I log di debug sono abilitati per impostazione predefinita, ma possono essere disattivati se non desiderati.

Ciò ti consente di monitorare il tuo server tramite strumenti esterni che analizzano i file di log, come lo stack ELK.

I log di debug sono essenziali per il lavoro di sviluppo e per la risoluzione dei problemi. Se riscontri problemi durante l'esecuzione di LibreChat, riproducili il più fedelmente possibile e segnala il problema includendo i log che trovi in ./api/logs/debug-%DATE%.log.

I log degli errori vengono salvati nella stessa posizione: ./api/logs/error-%DATE%.log. Se hai configurato meilisearch, esiste un file di log separato anche per questo.

Nota:

Nota: i log vengono ruotati ogni 14 giorni, quindi genererai un file di log degli errori, un file di log di debug e un file di log meiliSync ogni 14 giorni. Gli errori saranno presenti anche nei file di log di debug, ma i file di log degli errori forniranno stack trace e maggiori dettagli.

Configurazione

  • Attiva o disattiva i log di debug con la seguente variabile d'ambiente. Per impostazione predefinita, anche se non imposti mai questa variabile, i log di debug verranno generati, ma hai la possibilità di disabilitarli impostandola su FALSE.
KeyTypeDescriptionExample
DEBUG_LOGGINGbooleanMantieni attivi i log di debug.DEBUG_LOGGING=true

Nota: si consiglia di disabilitare i log di debug in un ambiente di produzione.

  • Per un output del server dettagliato nella console/terminale, è possibile impostare quanto segue su TRUE:
KeyTypeDescriptionExample
DEBUG_CONSOLEbooleanAbilita i log dettagliati della console/stdout nello stesso formato dei log di debug dei file.DEBUG_CONSOLE=false

Tuttavia, questo non è consigliato, poiché gli output possono essere piuttosto prolissi. È disabilitato per impostazione predefinita e dovrebbe essere abilitato con parsimonia.

  • Quando si gestiscono i log della console in distribuzioni cloud (come GCP o AWS), l'abilitazione di questa opzione scaricherà i log con un timestamp UTC e li formatterà come JSON.
KeyTypeDescriptionExample
CONSOLE_JSONbooleanAbilita log dettagliati in formato JSON su console/stdout adatti a distribuzioni cloud come GCP/AWS.CONSOLE_JSON=false

Per impostazione predefinita, la lunghezza della stringa JSON viene troncata a 255 caratteri. È possibile configurarla con la seguente variabile d'ambiente:

KeyTypeDescriptionExample
CONSOLE_JSON_STRING_LENGTHnumberConfigura la dimensione di troncamento per i valori stringa nei log della console/stdout JSON. Predefinito: 255.# CONSOLE_JSON_STRING_LENGTH=255
  • I trasporti di log basati su file sono abilitati per impostazione predefinita. Imposta LOG_TO_FILE=false se la tua distribuzione deve emettere i log solo su stdout/stderr.
KeyTypeDescriptionExample
LOG_TO_FILEbooleanImpostare su false per disabilitare i transport Winston basati su file.LOG_TO_FILE=true

Tracciamento OpenTelemetry

LibreChat può emettere tracce OpenTelemetry del backend per la visibilità di server, database, Redis e HTTP in uscita. Gli span a livello di comando di Redis sono facoltativi, in modo che le tracce predefinite rimangano ad alto livello. Questo è separato da Langfuse, che rimane l'opzione consigliata per l'osservabilità di prompt e modelli specifici per la GenAI.

KeyTypeDescriptionExample
OTEL_TRACING_ENABLEDbooleanAbilita il tracing OpenTelemetry del backend.# OTEL_TRACING_ENABLED=false
OTEL_SERVICE_NAMEstringNome del servizio segnalato a OpenTelemetry. Predefinito: librechat.# OTEL_SERVICE_NAME=librechat
OTEL_SERVICE_VERSIONstringVersione del servizio segnalata a OpenTelemetry.# OTEL_SERVICE_VERSION=
OTEL_EXPORTER_OTLP_ENDPOINTstringEndpoint dell'exporter OTLP di base.# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTstringEndpoint OTLP specifico per le tracce.# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
OTEL_EXPORTER_OTLP_HEADERSstringIntestazioni dell'exporter OTLP.# OTEL_EXPORTER_OTLP_HEADERS=
OTEL_TRACES_EXPORTERstringSelezione dell'esportatore di tracce.# OTEL_TRACES_EXPORTER=otlp
OTEL_TRACES_SAMPLERstringCampionatore di tracce OpenTelemetry.# OTEL_TRACES_SAMPLER=parentbased_always_on
OTEL_LOG_LEVELstringLivello di log dell'OpenTelemetry SDK.# OTEL_LOG_LEVEL=INFO
OTEL_SDK_DISABLEDbooleanDisabilita l'SDK OpenTelemetry anche quando il tracing è abilitato.# OTEL_SDK_DISABLED=false
OTEL_IOREDIS_TRACING_ENABLEDbooleanAbilita gli span a livello di comando Redis. Disabilitato per impostazione predefinita per mantenere le tracce del backend ad alto livello.# OTEL_IOREDIS_TRACING_ENABLED=false

Com’è questa guida?