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ı
/logsdizinine kaydedilir.
- npm kurulumu ile günlük dosyaları
/api/logsdizinine kaydedilir.
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
FALSEolarak ayarlayarak devre dışı bırakma seçeneğiniz vardır.
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_LOGGING | boolean | Hata 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
TRUEolarak ayarlayabilirsiniz:
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_CONSOLE | boolean | Dosya 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.
| Key | Type | Description | Example |
|---|---|---|---|
| CONSOLE_JSON | boolean | GCP/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:
| Key | Type | Description | Example |
|---|---|---|---|
| CONSOLE_JSON_STRING_LENGTH | number | JSON 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=falseolarak ayarlayın.
| Key | Type | Description | Example |
|---|---|---|---|
| LOG_TO_FILE | boolean | Dosya 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.
| Key | Type | Description | Example |
|---|---|---|---|
| OTEL_TRACING_ENABLED | boolean | Arka uç OpenTelemetry izlemeyi etkinleştirin. | # OTEL_TRACING_ENABLED=false |
| OTEL_SERVICE_NAME | string | OpenTelemetry'ye bildirilen hizmet adı. Varsayılan: librechat. | # OTEL_SERVICE_NAME=librechat |
| OTEL_SERVICE_VERSION | string | OpenTelemetry'ye bildirilen servis sürümü. | # OTEL_SERVICE_VERSION= |
| OTEL_EXPORTER_OTLP_ENDPOINT | string | Temel OTLP dışa aktarıcı endpoint'i. | # OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 |
| OTEL_EXPORTER_OTLP_TRACES_ENDPOINT | string | İzlemeye özel OTLP endpoint. | # OTEL_EXPORTER_OTLP_TRACES_ENDPOINT= |
| OTEL_EXPORTER_OTLP_HEADERS | string | OTLP dışa aktarıcı başlıkları. | # OTEL_EXPORTER_OTLP_HEADERS= |
| OTEL_TRACES_EXPORTER | string | İzleyici dışa aktarıcı seçimi. | # OTEL_TRACES_EXPORTER=otlp |
| OTEL_TRACES_SAMPLER | string | OpenTelemetry iz örnekleyici. | # OTEL_TRACES_SAMPLER=parentbased_always_on |
| OTEL_LOG_LEVEL | string | OpenTelemetry SDK günlük düzeyi. | # OTEL_LOG_LEVEL=INFO |
| OTEL_SDK_DISABLED | boolean | İzleme etkinleştirilmiş olsa bile OpenTelemetry SDK'sını devre dışı bırakın. | # OTEL_SDK_DISABLED=false |
| OTEL_IOREDIS_TRACING_ENABLED | boolean | Redis 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?