1

我正在尝试在 logback 中使用评估器。因此,我的 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' 的调用基本上会导致相同的错误。

我正在使用 janino 2.5.16 和 logback 0.9.15,所有东西都在 tomcat 上运行(从 maven 插件开始)

任何想法我做错了什么?

4

1 回答 1

1

表情看起来不错。0.9.15 版已经快两年了。能否请您升级到最新的 logback 版本?

于 2011-01-28T19:05:07.600 回答