[logback-dev] [JIRA] Resolved: (LBCLASSIC-103) Accidental incompatible joran syntax for evaluator filters

Ceki Gulcu (JIRA) noreply-jira at qos.ch
Fri Jan 23 15:06:30 CET 2009

     [ http://jira.qos.ch/browse/LBCLASSIC-103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ceki Gulcu resolved LBCLASSIC-103.

    Fix Version/s: 0.9.15
       Resolution: Fixed

Hello Michael,

Thank you very much for this report.  As explained in revision 2130, 
Joran is now able to assume a default type for nested components according
to rules declared in a JoranConfigurator instance. The rules are located in
an instance of the DefaultNestedComponentRegistry class. 

Thus, in many cases it will no longer be necessary to declare the class of a
component in configuration files.

Since the logback-classic and logback-access modes have their own JoranConfigurator
classes, it is now possible to register rules specific to each logback module.
For example, there is now a rule which maps the layout of an appender to a 
c.q.l.classic.PatternLayout instance for all appenders in  logback-classic and to
and instance of c.q.l.access.PatternLayout for all appenders in logback-access.

There is also a rule that by default maps the "evaluator" property in the
ch.qos.logback.core.filter.EvaluatorFilter class to 
ch.qos.logback.classic.boolex.JaninoEventEvaluator, thus fixing this bug.

> Accidental incompatible joran syntax for evaluator filters
> ----------------------------------------------------------
>                 Key: LBCLASSIC-103
>                 URL: http://jira.qos.ch/browse/LBCLASSIC-103
>             Project: logback-classic
>          Issue Type: Bug
>          Components: joran
>    Affects Versions: 0.9.14
>            Reporter: Michael Franz
>            Assignee: Ceki Gulcu
>             Fix For: 0.9.15
> The release note for 0.9.14 states: "In addition, EvaluatorAction has been modified to accept evaluators of any type and not just instances of JaninoEvaluator."
> Firstly: I could not found this documented within the manual.
> Secondly: 
> The examples for evaluator filters within appenders from the manual do no longer work, e.g. logback-examples/src/main/java/chapter6/basicEventEvaluator.xml:
>   <appender name="STDOUT"
>     class="ch.qos.logback.core.ConsoleAppender">
>     <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
>       <evaluator name="myEval">
>         <expression>message.contains("billing")</expression>
>       </evaluator>
>       <OnMismatch>NEUTRAL</OnMismatch>
>       <OnMatch>DENY</OnMatch>
>     </filter>
>     <layout class="ch.qos.logback.classic.PatternLayout">
>       <pattern>
>         %-4relative [%thread] %-5level %logger - %msg%n
>       </pattern>
>     </layout>
>   </appender>
> The error message is: |-ERROR in ch.qos.logback.core.joran.action.NestedComplexPropertyIA - No class name attribute in [evaluator]
> After adding class="ch.qos.logback.classic.boolex.JaninoEventEvaluator" to the evaluator tag it works. But this should not be required.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators: http://jira.qos.ch/secure/Administrators.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the logback-dev mailing list