FessのAI検索モードのログをfess-llm.logに分離  

FessのAI検索モード(RAG)を使っていると、LLM関連のログがfess.logに混ざってしまい、問題の切り分けがしづらいことがあった。そこで、LLM関連のログを専用のfess-llm.logに分離し、管理画面からログレベルを変更できるようにしました。

なぜ分離したのか

AI検索モードではLLMとのやり取りが発生するため、デバッグ時にはそれなりの量のログが出力される。これが通常の検索やクロールのログと一緒にfess.logに書き込まれると、必要な情報を探すのが大変になる。LLM関連のログを別ファイルに分けることで、AI検索モードの問題調査がやりやすくなる。

変更内容

fess-llm.logの追加

log4j2.xmlLlmFileというRollingFileアペンダーを追加し、以下の4パッケージのログをfess-llm.logに出力するようにした。

  • org.codelibs.fess.llm
  • org.codelibs.fess.chat
  • org.codelibs.fess.api.chat
  • org.codelibs.fess.app.web.chat

これらのロガーにはadditivity="false"を設定しているので、LLM関連のログはfess.logには出力されなくなる。ログのローテーション設定は既存のfess.logと同じ(時間+サイズベース、gzip圧縮)にしてある。

管理画面からのログレベル変更

管理画面の「一般設定」→「ログ設定」セクションに、LLM用のログレベルセレクターを追加した。選択できるレベルは以下の通り。

  • OFF
  • ERROR
  • WARN
  • INFO(デフォルト)
  • DEBUG
  • TRACE

ログレベルの変更はサーバーの再起動なしで即座に反映される。SystemHelpersetLlmLogLevel()メソッドで、Log4j2のConfigurator.setLevel()を使って対象パッケージのログレベルを動的に変更している。

システムプロパティ

fess.llm.log.levelというシステムプロパティでも初期ログレベルを指定できる。未設定の場合はINFOがデフォルトになる。

既存環境への影響

既存のログファイルへの影響はない。fess-llm.logは新規に追加されるファイルで、デフォルトのログレベルはINFOなので、特に設定を変更しなくてもそのまま使える。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です