Hello "Buzzterrier",

You probably meant to set the class name for the EMAIL appender to
SMTPAppender but since you used ConsoleAppender instead, joran is
incapable for injecting an evaluator into ConsoleAppender because
ConsoleAppender does not support evaluators. Joran should have
complained about not being able to inject the evaluator. If it has
not, it's a bug.

Changing the class of the appender named EMAIL from ConsoleAppender to
SMTPAppender should fix the problem.

As for your question on the difference between filters and evaluators,
filters are supported by all appenders and are used to determine
whether to drop an logging event or not. An appender can have zero or
more filters.

On the other hand, evaluators are used to check whether a special event
has occurred. In the case of SMTPAppender, evaluators are used to
trigger an outgoing email. SMTPAppender requires one and only one
evaluator. If you do not supply one, it defaults to on
OnErrorEvaluator.

BTW, you can add filters SMTPAppender to drop certain events from
entering SMTPAppender internal events. However, it it still
SMTPAppender's evaluator which will determine when to trigger an
email.

HTH,



On 19/05/2010 7:20 PM, buzzterrier wrote:

I am trying to setup a simple evaluator for an appender. I want certain debug
messages to be emailed, while the default will just go to stdout.

Here is my context  (note for this test both appenders output to the
console, although one is named EMAIL):

<configuration>

   <appender name="STDOUT"
     class="ch.qos.logback.core.ConsoleAppender">
     <encoder>
       <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
%msg%n</pattern>
     </encoder>
   </appender>

     <appender name="EMAIL"
     class="ch.qos.logback.core.ConsoleAppender">

    <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
       <marker>NOTIFY_ADMIN</marker>
     </evaluator>

     <encoder>
       <pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern>
     </encoder>

   </appender>

   <root>
      <level value="debug" />
      <appender-ref ref="STDOUT" />
      <appender-ref ref="EMAIL" />
    </root>
</configuration>


The context gives the following error:
07:30:14,121 |-ERROR in ch.qos.logback.core.joran.spi.interpre...@19:72 - no
applicable action for [evaluator], current pattern is
[[configuration][appender][evaluator]]
07:30:14,121 |-ERROR in ch.qos.logback.core.joran.spi.interpre...@20:15 - no
applicable action for [marker], current pattern is
[[configuration][appender][evaluator][marker]]


Any ideas?

Also, can you describe the difference between and evaluator and a filter?



-----
Buzzterrier

http://buzzterrier.blogspot.com/ View my blog: Ordinary Average Developer...

_______________________________________________
Logback-user mailing list
[email protected]
http://qos.ch/mailman/listinfo/logback-user

Reply via email to