Sistem Pencatatan
Dokumen ini menjelaskan cara menggunakan fitur logging LibreChat, yang menyimpan log error dan debug di folder `/api/logs`. Anda dapat menggunakan log ini untuk memecahkan masalah, memantau server Anda, dan melaporkan bug. Anda juga dapat menonaktifkan log debug jika ingin menghemat ruang penyimpanan.
Umum
LibreChat memiliki pencatatan log terpusat yang terintegrasi ke dalam backend (api)-nya.
- Dengan instalasi docker, file log disimpan di
/logs
- Dengan instalasi npm, file log disimpan di
/api/logs
Log kesalahan disimpan secara default. Log debug diaktifkan secara default tetapi dapat dimatikan jika tidak diinginkan.
Ini memungkinkan Anda untuk memantau server Anda melalui alat eksternal yang memeriksa file log, seperti the ELK stack.
Log debug sangat penting untuk pekerjaan pengembang dan perbaikan masalah. Jika Anda mengalami masalah saat menjalankan LibreChat, reproduksi sedekat mungkin, dan laporkan masalah tersebut dengan menyertakan log Anda yang ditemukan di ./api/logs/debug-%DATE%.log.
Log kesalahan juga disimpan di lokasi yang sama: ./api/logs/error-%DATE%.log. Jika Anda telah mengonfigurasi Meilisearch, terdapat file log terpisah untuk ini juga.
Catatan:
Catatan: Log dirotasi setiap 14 hari, sehingga Anda akan menghasilkan satu file log error, satu file log debug, dan satu file log meiliSync per 14 hari. Error juga akan muncul di dalam file log debug, namun file log error menyediakan pelacakan tumpukan (stack trace) dan detail yang lebih lengkap.
Pengaturan
- Aktifkan log debug dengan variabel lingkungan berikut. Secara default, meskipun Anda tidak pernah mengatur variabel ini, log debug akan tetap dibuat, tetapi Anda memiliki opsi untuk menonaktifkannya dengan mengaturnya ke
FALSE.
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_LOGGING | boolean | Tetap aktifkan log debug. | DEBUG_LOGGING=true |
Catatan: disarankan untuk menonaktifkan log debug di lingkungan produksi.
- Untuk output server yang lebih mendetail di konsol/terminal, Anda dapat mengatur hal berikut ke
TRUE:
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_CONSOLE | boolean | Aktifkan log konsol/stdout verbose dalam format yang sama dengan log debug file. | DEBUG_CONSOLE=false |
Namun, hal ini tidak disarankan karena output yang dihasilkan bisa jadi sangat panjang. Fitur ini dinonaktifkan secara default dan sebaiknya hanya diaktifkan jika benar-benar diperlukan.
- Saat menangani log konsol dalam deployment cloud (seperti GCP atau AWS), mengaktifkan ini akan mencetak log dengan stempel waktu UTC dan memformatnya sebagai JSON.
| Key | Type | Description | Example |
|---|---|---|---|
| CONSOLE_JSON | boolean | Aktifkan log konsol/stdout JSON verbose yang sesuai untuk penyebaran cloud seperti GCP/AWS. | CONSOLE_JSON=false |
Secara default, panjang string JSON dipotong hingga 255 karakter. Anda dapat mengonfigurasinya dengan variabel lingkungan berikut:
| Key | Type | Description | Example |
|---|---|---|---|
| CONSOLE_JSON_STRING_LENGTH | number | Konfigurasikan ukuran pemotongan untuk nilai string dalam log konsol/stdout JSON. Default: 255. | # CONSOLE_JSON_STRING_LENGTH=255 |
- Transport log berbasis file diaktifkan secara default. Atur
LOG_TO_FILE=falsejika deployment Anda hanya perlu mengeluarkan log ke stdout/stderr.
| Key | Type | Description | Example |
|---|---|---|---|
| LOG_TO_FILE | boolean | Atur ke false untuk menonaktifkan transport Winston berbasis file. | LOG_TO_FILE=true |
OpenTelemetry Tracing
LibreChat dapat memancarkan trace OpenTelemetry backend untuk visibilitas server, database, Redis, dan HTTP keluar. Span tingkat perintah Redis bersifat opsional (opt-in) sehingga trace default tetap berada pada tingkat tinggi. Hal ini terpisah dari Langfuse, yang tetap menjadi opsi yang direkomendasikan untuk observabilitas prompt dan model khusus GenAI.
| Key | Type | Description | Example |
|---|---|---|---|
| OTEL_TRACING_ENABLED | boolean | Aktifkan pelacakan OpenTelemetry backend. | # OTEL_TRACING_ENABLED=false |
| OTEL_SERVICE_NAME | string | Nama layanan yang dilaporkan ke OpenTelemetry. Default: librechat. | # OTEL_SERVICE_NAME=librechat |
| OTEL_SERVICE_VERSION | string | Versi layanan yang dilaporkan ke OpenTelemetry. | # OTEL_SERVICE_VERSION= |
| OTEL_EXPORTER_OTLP_ENDPOINT | string | Endpoint eksportir OTLP dasar. | # OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 |
| OTEL_EXPORTER_OTLP_TRACES_ENDPOINT | string | endpoint OTLP khusus untuk trace. | # OTEL_EXPORTER_OTLP_TRACES_ENDPOINT= |
| OTEL_EXPORTER_OTLP_HEADERS | string | Header eksportir OTLP. | # OTEL_EXPORTER_OTLP_HEADERS= |
| OTEL_TRACES_EXPORTER | string | Pemilihan eksportir trace. | # OTEL_TRACES_EXPORTER=otlp |
| OTEL_TRACES_SAMPLER | string | Sampler pelacakan OpenTelemetry. | # OTEL_TRACES_SAMPLER=parentbased_always_on |
| OTEL_LOG_LEVEL | string | Level log SDK OpenTelemetry. | # OTEL_LOG_LEVEL=INFO |
| OTEL_SDK_DISABLED | boolean | Nonaktifkan SDK OpenTelemetry meskipun pelacakan diaktifkan. | # OTEL_SDK_DISABLED=false |
| OTEL_IOREDIS_TRACING_ENABLED | boolean | Aktifkan span tingkat perintah Redis. Dinonaktifkan secara default untuk menjaga agar trace backend tetap pada tingkat tinggi. | # OTEL_IOREDIS_TRACING_ENABLED=false |
Bagaimana panduan ini?