ログシステム
このドキュメントでは、LibreChatのログ機能の使用方法を説明します。この機能は、エラーログとデバッグログを `/api/logs` フォルダに保存します。これらのログを使用して、問題のトラブルシューティング、サーバーの監視、バグの報告を行うことができます。また、容量を節約したい場合はデバッグログを無効にすることも可能です。
一般
LibreChatには、バックエンド(api)に組み込まれた一元的なロギング機能があります。
- Docker インストールでは、ログファイルは
/logsに保存されます。
- npm インストールでは、ログファイルは
/api/logsに保存されます。
エラーログはデフォルトで保存されます。デバッグログもデフォルトで有効になっていますが、不要な場合はオフにすることができます。
これにより、the ELK stack のような、ログファイルを検査する外部ツールを通じてサーバーを監視できるようになります。
デバッグログは、開発作業や問題の修正に不可欠です。LibreChatの実行中に何らかの問題が発生した場合は、可能な限りその状況を再現し、./api/logs/debug-%DATE%.log にあるログを添えて 問題を報告 してください。
エラーログも同じ場所に保存されます: ./api/logs/error-%DATE%.log。Meilisearchを設定している場合、それ専用のログファイルも別途作成されます。
注:
注: ログは14日ごとにローテーションされるため、14日ごとにエラーログファイル、デバッグログファイル、meiliSyncログファイルがそれぞれ1つずつ生成されます。エラーはデバッグログファイルにも記録されますが、エラーログファイルにはスタックトレースやより詳細な情報が含まれます。
セットアップ
- 以下の環境変数を使用して、デバッグログの切り替えが可能です。デフォルトでは、この変数を設定しなくてもデバッグログが生成されますが、
FALSEに設定することで無効化するオプションがあります。
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_LOGGING | boolean | デバッグログを有効に保つ。 | DEBUG_LOGGING=true |
注: 本番環境ではデバッグログを無効にすることを推奨します。
- コンソール/ターミナルで詳細なサーバー出力を表示するには、以下を
TRUEに設定します。
| Key | Type | Description | Example |
|---|---|---|---|
| DEBUG_CONSOLE | boolean | ファイルデバッグログと同じ形式で、詳細なコンソール/stdoutログを有効にします。 | DEBUG_CONSOLE=false |
ただし、出力が非常に冗長になる可能性があるため、これは推奨されません。デフォルトでは無効になっており、必要な場合にのみ有効にしてください。
- クラウドデプロイメント(GCPやAWSなど)でコンソールログを扱う際、これを有効にすると、ログがUTCタイムスタンプ付きでJSON形式として出力されます。
| Key | Type | Description | Example |
|---|---|---|---|
| CONSOLE_JSON | boolean | GCP/AWSなどのクラウドデプロイに適した、詳細なJSON形式のコンソール/stdoutログを有効にします。 | CONSOLE_JSON=false |
デフォルトでは、JSON文字列の長さは255文字に切り詰められます。これは以下の環境変数で設定できます:
| Key | Type | Description | Example |
|---|---|---|---|
| CONSOLE_JSON_STRING_LENGTH | number | JSONコンソール/stdoutログ内の文字列値の切り捨てサイズを設定します。デフォルト: 255。 | # CONSOLE_JSON_STRING_LENGTH=255 |
- ファイルベースのログ転送はデフォルトで有効になっています。デプロイメントでログをstdout/stderrのみに出力する必要がある場合は、
LOG_TO_FILE=falseを設定してください。
| Key | Type | Description | Example |
|---|---|---|---|
| LOG_TO_FILE | boolean | falseに設定すると、ファイルベースのWinstonトランスポートが無効になります。 | LOG_TO_FILE=true |
OpenTelemetry Tracing
LibreChatは、サーバー、データベース、Redis、およびアウトバウンドHTTPの可視化のために、バックエンドのOpenTelemetryトレースを出力できます。Redisコマンドレベルのスパンはオプトイン形式であるため、デフォルトのトレースは高レベルに保たれます。これは、GenAI特有のプロンプトやモデルの可観測性において推奨されるオプションであるLangfuseとは別個のものです。
| Key | Type | Description | Example |
|---|---|---|---|
| OTEL_TRACING_ENABLED | boolean | バックエンドのOpenTelemetryトレーシングを有効にする。 | # OTEL_TRACING_ENABLED=false |
| OTEL_SERVICE_NAME | string | OpenTelemetryに報告されるサービス名。デフォルト: librechat。 | # OTEL_SERVICE_NAME=librechat |
| OTEL_SERVICE_VERSION | string | OpenTelemetryに報告されるサービスバージョン。 | # OTEL_SERVICE_VERSION= |
| OTEL_EXPORTER_OTLP_ENDPOINT | string | ベース OTLP エクスポーター endpoint | # OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 |
| OTEL_EXPORTER_OTLP_TRACES_ENDPOINT | string | トレース固有のOTLP endpoint。 | # OTEL_EXPORTER_OTLP_TRACES_ENDPOINT= |
| OTEL_EXPORTER_OTLP_HEADERS | string | OTLPエクスポーターのヘッダー | # OTEL_EXPORTER_OTLP_HEADERS= |
| OTEL_TRACES_EXPORTER | string | トレースエクスポーターの選択 | # OTEL_TRACES_EXPORTER=otlp |
| OTEL_TRACES_SAMPLER | string | OpenTelemetry トレースサンプラー | # OTEL_TRACES_SAMPLER=parentbased_always_on |
| OTEL_LOG_LEVEL | string | OpenTelemetry SDKのログレベル。 | # OTEL_LOG_LEVEL=INFO |
| OTEL_SDK_DISABLED | boolean | トレーシングが有効な場合でもOpenTelemetry SDKを無効にします。 | # OTEL_SDK_DISABLED=false |
| OTEL_IOREDIS_TRACING_ENABLED | boolean | Redisコマンドレベルのスパンを有効にします。バックエンドのトレースをハイレベルに保つため、デフォルトでは無効になっています。 | # OTEL_IOREDIS_TRACING_ENABLED=false |
このガイドはいかがでしたか?