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

ログシステム

このドキュメントでは、LibreChatのログ機能の使用方法を説明します。この機能は、エラーログとデバッグログを `/api/logs` フォルダに保存します。これらのログを使用して、問題のトラブルシューティング、サーバーの監視、バグの報告を行うことができます。また、容量を節約したい場合はデバッグログを無効にすることも可能です。

一般

LibreChatには、バックエンド(api)に組み込まれた一元的なロギング機能があります。

  • Docker インストールでは、ログファイルは /logs に保存されます。
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log
  • npm インストールでは、ログファイルは /api/logs に保存されます。
debug-2024-01-01.log
error-2024-01-01.log
meiliSync-2024-01-01.log

エラーログはデフォルトで保存されます。デバッグログもデフォルトで有効になっていますが、不要な場合はオフにすることができます。

これにより、the ELK stack のような、ログファイルを検査する外部ツールを通じてサーバーを監視できるようになります。

デバッグログは、開発作業や問題の修正に不可欠です。LibreChatの実行中に何らかの問題が発生した場合は、可能な限りその状況を再現し、./api/logs/debug-%DATE%.log にあるログを添えて 問題を報告 してください。

エラーログも同じ場所に保存されます: ./api/logs/error-%DATE%.log。Meilisearchを設定している場合、それ専用のログファイルも別途作成されます。

注:

注: ログは14日ごとにローテーションされるため、14日ごとにエラーログファイル、デバッグログファイル、meiliSyncログファイルがそれぞれ1つずつ生成されます。エラーはデバッグログファイルにも記録されますが、エラーログファイルにはスタックトレースやより詳細な情報が含まれます。

セットアップ

  • 以下の環境変数を使用して、デバッグログの切り替えが可能です。デフォルトでは、この変数を設定しなくてもデバッグログが生成されますが、FALSEに設定することで無効化するオプションがあります。
KeyTypeDescriptionExample
DEBUG_LOGGINGbooleanデバッグログを有効に保つ。DEBUG_LOGGING=true

注: 本番環境ではデバッグログを無効にすることを推奨します。

  • コンソール/ターミナルで詳細なサーバー出力を表示するには、以下を TRUE に設定します。
KeyTypeDescriptionExample
DEBUG_CONSOLEbooleanファイルデバッグログと同じ形式で、詳細なコンソール/stdoutログを有効にします。DEBUG_CONSOLE=false

ただし、出力が非常に冗長になる可能性があるため、これは推奨されません。デフォルトでは無効になっており、必要な場合にのみ有効にしてください。

  • クラウドデプロイメント(GCPやAWSなど)でコンソールログを扱う際、これを有効にすると、ログがUTCタイムスタンプ付きでJSON形式として出力されます。
KeyTypeDescriptionExample
CONSOLE_JSONbooleanGCP/AWSなどのクラウドデプロイに適した、詳細なJSON形式のコンソール/stdoutログを有効にします。CONSOLE_JSON=false

デフォルトでは、JSON文字列の長さは255文字に切り詰められます。これは以下の環境変数で設定できます:

KeyTypeDescriptionExample
CONSOLE_JSON_STRING_LENGTHnumberJSONコンソール/stdoutログ内の文字列値の切り捨てサイズを設定します。デフォルト: 255。# CONSOLE_JSON_STRING_LENGTH=255
  • ファイルベースのログ転送はデフォルトで有効になっています。デプロイメントでログをstdout/stderrのみに出力する必要がある場合は、LOG_TO_FILE=false を設定してください。
KeyTypeDescriptionExample
LOG_TO_FILEbooleanfalseに設定すると、ファイルベースのWinstonトランスポートが無効になります。LOG_TO_FILE=true

OpenTelemetry Tracing

LibreChatは、サーバー、データベース、Redis、およびアウトバウンドHTTPの可視化のために、バックエンドのOpenTelemetryトレースを出力できます。Redisコマンドレベルのスパンはオプトイン形式であるため、デフォルトのトレースは高レベルに保たれます。これは、GenAI特有のプロンプトやモデルの可観測性において推奨されるオプションであるLangfuseとは別個のものです。

KeyTypeDescriptionExample
OTEL_TRACING_ENABLEDbooleanバックエンドのOpenTelemetryトレーシングを有効にする。# OTEL_TRACING_ENABLED=false
OTEL_SERVICE_NAMEstringOpenTelemetryに報告されるサービス名。デフォルト: librechat。# OTEL_SERVICE_NAME=librechat
OTEL_SERVICE_VERSIONstringOpenTelemetryに報告されるサービスバージョン。# OTEL_SERVICE_VERSION=
OTEL_EXPORTER_OTLP_ENDPOINTstringベース OTLP エクスポーター endpoint# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTstringトレース固有のOTLP endpoint。# OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=
OTEL_EXPORTER_OTLP_HEADERSstringOTLPエクスポーターのヘッダー# OTEL_EXPORTER_OTLP_HEADERS=
OTEL_TRACES_EXPORTERstringトレースエクスポーターの選択# OTEL_TRACES_EXPORTER=otlp
OTEL_TRACES_SAMPLERstringOpenTelemetry トレースサンプラー# OTEL_TRACES_SAMPLER=parentbased_always_on
OTEL_LOG_LEVELstringOpenTelemetry SDKのログレベル。# OTEL_LOG_LEVEL=INFO
OTEL_SDK_DISABLEDbooleanトレーシングが有効な場合でもOpenTelemetry SDKを無効にします。# OTEL_SDK_DISABLED=false
OTEL_IOREDIS_TRACING_ENABLEDbooleanRedisコマンドレベルのスパンを有効にします。バックエンドのトレースをハイレベルに保つため、デフォルトでは無効になっています。# OTEL_IOREDIS_TRACING_ENABLED=false

このガイドはいかがでしたか?