JaninoEventEvaluator が使用できなくなりました。

 
【発生条件と事象】

intra-mart Accel Platform を 2025 Autumn 以降のバージョンにアップデートした際に、ログ設定ファイルで JaninoEventEvaluator を利用していた場合、アプリケーション起動時に以下のエラーが出力されます。

◆ パターン1:ログ設定ファイルで EvaluatorFilter のプロパティ「evaluator」の class 属性を JaninoEventEvaluator に指定している場合

[ERROR] j.c.i.c.p.l.u.LogbackUtil - [] [ERROR] ch.qos.logback.core.model.processor.ImplicitModelHandler - Could not create component [filter] of type [ch.qos.logback.classic.boolex.JaninoEventEvaluator]

◆ パターン2:ログ設定ファイルで EvaluatorFilter のプロパティ「evaluator」の class 属性を未指定にしている場合(デフォルト実装の JaninoEventEvaluator を利用している場合)

[ERROR] j.c.i.c.p.l.u.LogbackUtil - [] [ERROR] ch.qos.logback.core.filter.EvaluatorFilter@7b8d84de - No evaluator set for filter null


このエラーが出力される場合は、JaninoEventEvaluator を独自の EventEvaluator 実装クラスで置き換える必要があります。
※ 対応を実施しない場合、ログ設定ファイルが正常に読み込まれず、ログ出力に支障が生じる可能性があります。


【原因】

intra-mart Accel Platform 2025 Autumn で Logback を 1.3.15 にバージョンアップしました。
このバージョンアップにより、Logbackから JaninoEventEvaluator が削除されたため、ログ設定ファイルでこの機能を利用している場合は、JaninoEventEvaluator を独自の EventEvaluator 実装クラスで置き換える必要があります。


【対応方法】

ログ設定ファイルで JaninoEventEvaluator を利用している場合は、以下の手順で対応してください。

1. 独自の EventEvaluator 実装クラスを作成する
   Logback公式ドキュメント - JaninoEventEvaluatorを参考に、独自の EventEvaluator 実装クラスを作成します。
   詳細は、intra-mart Accel Platform ログ仕様書 - EventEvaluator を参照してください。

2. ユーザモジュールを作成し、WARファイルに追加します
   作成した EventEvaluator 実装クラスをユーザモジュールとしてWARファイルに追加します。

3. ログ設定ファイルを修正する
   JaninoEventEvaluator を利用していた部分を、作成した独自実装クラスを参照するように修正します。

   [修正前]
   <evaluator class="ch.qos.logback.classic.boolex.JaninoEventEvaluator">
       <expression>message.contains("xxxx")</expression>
   </evaluator>

   [修正後]
   <evaluator class="xxxx.xxxx.xxxx.xxxx" /><!-- 独自の EventEvaluator 実装クラスを指定する -->

【注意】

intra-mart Accel Platform 2025 Spring以前のバージョンでは、EvaluatorFilter のプロパティ「evaluator」の class 属性が未指定の場合、デフォルト実装として JaninoEventEvaluator が利用されていました。
そのため、ログ設定ファイルで JaninoEventEvaluator を明示的に指定していない場合でも、以下のような evaluator 要素がある場合は対応が必要です。

   <evaluator />  <!-- class 属性未指定でデフォルト実装を使用している場合 -->

ご自身のログ設定ファイルを確認し、evaluator 要素が存在する場合は適宜対応してください。


4. 修正したログ設定ファイルをデプロイする

   ログ設定ファイルの配置方法には以下のケースがあります。

   ・製品標準のログ設定ファイルを修正している場合
     Jugglingプロジェクトの conf/log/ 配下に修正したログ設定ファイルを配置し、WARファイルを出力してデプロイします。

   ・ユーザ独自に作成したログ設定ファイルを使用している場合
     e Builderでconf/log/配下に設定ファイルを配置してユーザモジュールを作成しJugglingプロジェクトに追加するか、またはJugglingプロジェクトの conf/log/ 配下に配置してWARファイルを出力しデプロイします。

   詳細は、intra-mart Accel Platform ログ仕様書 - ログ設定ファイルの編集 を参照してください。

【参考ドキュメント】

・intra-mart Accel Platform ログ仕様書 - EventEvaluator
https://document.intra-mart.jp/library/iap/public/im_core/im_log_specification/texts/log_class/filter/index.html#eventevaluator

・intra-mart Accel Platform ログ仕様書 - ログ設定ファイルの編集
https://document.intra-mart.jp/library/iap/public/im_core/im_log_specification/texts/overview/index.html#ログ設定ファイルの編集

・intra-mart Accel Platform セットアップガイド - アップデート時に IM-Juggling で必要なメンテナンス作業 - 2025 Spring(Kamille) からアップデート - 【各種ログ設定ファイルの内容を変更している場合】
https://document.intra-mart.jp/library/iap/public/setup/iap_setup_guide/texts/create_war/update_module/editing_configuration_file.html#id31

・Logback公式ドキュメント - JaninoEventEvaluator
https://logback.qos.ch/manual/filters.html#JaninoEventEvaluator

-- 対象 -------------------------------------------------------------------------
iAP/Accel Platform/2025 Autumn 以降
--------------------------------------------------------------------------------


FAQID:1435
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています
Powered by Zendesk