1

ログバックでエバリュエーターを使用しようとしています。そのため、logback.xmlにこのスニペットがあります

<evaluator name="IS_INTERESTING">
    <expression>logger != null &amp;&amp; message != null &amp;&amp; logger.contains(".xxx.") &amp;&amp; message.contains("closing session")</expression>
</evaluator>

しかし、Janinoはそれを処理できず、次のエラーが発生します。

15:56:14,061 |-ERROR in ch.qos.logback.classic.boolex.JaninoEventEvaluator@15da7d - Could not start evaluator with expression [logger != null && message != null && logger.contains(".xxx.") && message.contains("closing session")] org.codehaus.janino.CompileException: Line 2, Column 53: A method named "contains" is not declared in any enclosing class nor any supertype, nor through a static import
    at org.codehaus.janino.CompileException: Line 2, Column 53: A method named "contains" is not declared in any enclosing class nor any supertype, nor through a static import

Stringクラスのバージョンの問題かもしれないと思いましたが、「contains」を「indexOf」の呼び出しに置き換えると、基本的に同じエラーが発生しました。

私はjanino2.5.16とlogback0.9.15を使用しており、すべてのものがTomcatで実行されています(Mavenプラグインのもので開始)

私が間違っていることについて何か考えはありますか?

4

1 に答える 1

1

表情が良さそうです。バージョン0.9.15はほぼ2年前のものです。最新のログバックバージョンにアップグレードしていただけますか?

于 2011-01-28T19:05:07.600 に答える