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

Günlükleme Sistemi

Bu belge, hata ve hata ayıklama günlüklerini `/api/logs` klasörüne kaydeden LibreChat günlük kaydı özelliğinin nasıl kullanılacağını açıklar. Bu günlükleri sorunları gidermek, sunucunuzu izlemek ve hataları bildirmek için kullanabilirsiniz. Ayrıca yer kazanmak isterseniz hata ayıklama günlüklerini devre dışı bırakabilirsiniz.

Genel

LibreChat, arka ucunda (api) yerleşik merkezi bir günlüğe kaydetme (logging) sistemine sahiptir.

  • Docker kurulumu ile günlük dosyaları /logs dizinine kaydedilir.
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log
  • npm kurulumu ile günlük dosyaları /api/logs dizinine kaydedilir.
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log

Hata günlükleri varsayılan olarak kaydedilir. Hata ayıklama günlükleri varsayılan olarak etkindir ancak istenmediği takdirde kapatılabilir.

Bu, ELK stack gibi günlük dosyalarını inceleyen harici araçlar aracılığıyla sunucunuzu izlemenize olanak tanır.

Hata ayıklama günlükleri (debug logs), geliştirici çalışmaları ve sorunların giderilmesi için çok önemlidir. LibreChat'i çalıştırırken herhangi bir sorunla karşılaşırsanız, durumu mümkün olduğunca benzer şekilde yeniden oluşturun ve ./api/logs/debug-%DATE%.log dosyasında bulunan günlüklerinizle birlikte sorunu bildirin.

Hata günlükleri de aynı konumda kaydedilir: ./api/logs/error-%DATE%.log. Eğer meilisearch yapılandırılmışsa, bunun için de ayrı bir günlük dosyası bulunur.

Not:

Not: Günlükler 14 günlük periyotlarla döndürülür, bu nedenle her 14 günde bir hata günlüğü dosyası, bir hata ayıklama (debug) günlüğü dosyası ve bir meiliSync günlüğü dosyası oluşturursunuz. Hatalar hata ayıklama günlüğü dosyalarında da yer alacaktır, ancak hata günlüğü dosyaları yığın izlemeleri (stack traces) ve daha fazla ayrıntı sağlar.

Kurulum

  • Aşağıdaki ortam değişkeni ile hata ayıklama (debug) günlüklerini açıp kapatabilirsiniz. Varsayılan olarak, bu değişkeni hiç ayarlamasanız bile hata ayıklama günlükleri oluşturulacaktır, ancak bunu FALSE olarak ayarlayarak devre dışı bırakma seçeneğiniz vardır.
KeyTypeDescriptionExample
DEBUG_LOGGINGbooleanHata ayıklama günlüklerini etkin tutun.DEBUG_LOGGING=true

Not: üretim ortamında hata ayıklama (debug) günlüklerini devre dışı bırakmanız önerilir.

  • Konsol/terminalde ayrıntılı sunucu çıktısı almak için aşağıdakini TRUE olarak ayarlayabilirsiniz:
KeyTypeDescriptionExample
DEBUG_CONSOLEbooleanDosya hata ayıklama günlükleriyle aynı formatta ayrıntılı konsol/stdout günlüklerini etkinleştirin.DEBUG_CONSOLE=false

Ancak çıktılar oldukça uzun olabileceğinden bu önerilmez. Varsayılan olarak devre dışıdır ve yalnızca gerektiğinde etkinleştirilmelidir.

  • Bulut dağıtımlarında (GCP veya AWS gibi) konsol günlüklerini yönetirken, bunu etkinleştirmek günlükleri UTC zaman damgasıyla dökecek ve JSON olarak biçimlendirecektir.
KeyTypeDescriptionExample
CONSOLE_JSONbooleanGCP/AWS gibi bulut dağıtımları için uygun olan ayrıntılı JSON konsol/stdout günlüklerini etkinleştirin.CONSOLE_JSON=false

Varsayılan olarak, JSON dize uzunluğu 255 karakterle sınırlandırılmıştır. Bunu aşağıdaki ortam değişkeni ile yapılandırabilirsiniz:

KeyTypeDescriptionExample
CONSOLE_JSON_STRING_LENGTHnumberJSON konsol/stdout günlüklerindeki dize değerleri için kırpma boyutunu yapılandırın. Varsayılan: 255.# CONSOLE_JSON_STRING_LENGTH=255
  • Dosya destekli günlük taşıyıcıları varsayılan olarak etkindir. Dağıtımınızın günlükleri yalnızca stdout/stderr'e göndermesini istiyorsanız LOG_TO_FILE=false olarak ayarlayın.
KeyTypeDescriptionExample
LOG_TO_FILEbooleanDosya destekli Winston aktarımlarını devre dışı bırakmak için false olarak ayarlayın.LOG_TO_FILE=true

OpenTelemetry Tracing

LibreChat, sunucu, veritabanı, Redis ve giden HTTP görünürlüğü için arka uç OpenTelemetry izleri (traces) yayabilir. Redis komut düzeyi aralıkları (spans) isteğe bağlıdır, bu nedenle varsayılan izler üst düzeyde kalır. Bu, GenAI'ye özgü istem ve model gözlemlenebilirliği için önerilen seçenek olmaya devam eden Langfuse'dan ayrıdır.

KeyTypeDescriptionExample
OTEL_TRACING_ENABLEDbooleanArka uç OpenTelemetry izlemeyi etkinleştirin.# OTEL_TRACING_ENABLED=false
OTEL_SERVICE_NAMEstringOpenTelemetry'ye bildirilen hizmet adı. Varsayılan: librechat.# OTEL_SERVICE_NAME=librechat
OTEL_SERVICE_VERSIONstringOpenTelemetry'ye bildirilen servis sürümü.# OTEL_SERVICE_VERSION=
OTEL_EXPORTER_OTLP_ENDPOINTstringTemel OTLP dışa aktarıcı endpoint'i.# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTstringİzlemeye özel OTLP endpoint.# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
OTEL_EXPORTER_OTLP_HEADERSstringOTLP dışa aktarıcı başlıkları.# OTEL_EXPORTER_OTLP_HEADERS=
OTEL_TRACES_EXPORTERstringİzleyici dışa aktarıcı seçimi.# OTEL_TRACES_EXPORTER=otlp
OTEL_TRACES_SAMPLERstringOpenTelemetry iz örnekleyici.# OTEL_TRACES_SAMPLER=parentbased_always_on
OTEL_LOG_LEVELstringOpenTelemetry SDK günlük düzeyi.# OTEL_LOG_LEVEL=INFO
OTEL_SDK_DISABLEDbooleanİzleme etkinleştirilmiş olsa bile OpenTelemetry SDK'sını devre dışı bırakın.# OTEL_SDK_DISABLED=false
OTEL_IOREDIS_TRACING_ENABLEDbooleanRedis komut düzeyi aralıklarını etkinleştirir. Arka uç izlemelerini üst düzeyde tutmak için varsayılan olarak devre dışıdır.# OTEL_IOREDIS_TRACING_ENABLED=false

Bu rehber nasıl?