[logback-user] SMTPAppender with level WARN?

Ceki Gulcu listid at qos.ch
Mon Oct 20 22:16:35 CEST 2008


Hello Joop,

Just after creating a/any logger, invoke the following method

LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
StatusPrinter.print(lc);

I *bet* the output will tell you went wrong.

HTH,


Joop Vriend wrote:
> Hi,
> 
> I'm trying to configure logback with an SMTPAppender that mails *every*
> log message of level WARN or higher, but I can't get it working.
> 
> I've tried to use a (Threshold)filter, but that didn't work. (Why can't
> you just use filters with SMTPAppender?!?)
> 
> I've tried to use an EvaluatorFilter with an expression 'level >= WARN',
> but that didn't work either.
> 
> Now I'm trying to use a custom evaluator, but still can't get it
> working... :-(  Level ERROR is being e-mailed, but other levels not.
> For testing purposes I (even) wrote a custom evaluator-class that always
> returns 'true' in it's evaluate()-method:
> 
> 
> public class AlwaysTrueEvaluator extends ContextAwareBase implements
> EventEvaluator
> {
>    String  name;
>    boolean started;
> 
> 
>    public boolean evaluate(Object event) throws NullPointerException,
> EvaluationException
>    {
>      return true;
>    }
> 
> 
>    public void setName(String name)
>    {
>      this.name = name;
>    }
> 
> 
>    public String getName()
>    {
>      return name;
>    }
> 
> 
>    public boolean isStarted()
>    {
>      return started;
>    }
> 
> 
>    public void start()
>    {
>      started = true;
>    }
> 
> 
>    public void stop()
>    {
>      started = false;
>    }
> 
> }
> 
> 
> 
> This is my logback.xml file:
> 
> 
> <configuration>
> 
>    <appender name="RootFileAppender"
> class="ch.qos.logback.core.rolling.RollingFileAppender">
>      <append>true</append>
>      <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
>        <level>debug</level>
>      </filter>
>      <rollingPolicy
> class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
> 
> <fileNamePattern>${catalina.base}/logs/logback-root.%d{yyyy-MM-dd}.log.gz</fileNamePattern>
>      </rollingPolicy>
>      <layout class="ch.qos.logback.classic.PatternLayout">
>        <pattern>%date{yyyy-MM-dd HH:mm:ss}  %class %method
> \(%file:%line\)%n  %level: %message%n</pattern>
>      </layout>
>    </appender>
> 
>    <appender name="RootEmailAppender"
> class="ch.qos.logback.classic.net.SMTPAppender">
>      <bufferSize>1</bufferSize>
>      <SMTPHost>_SMTP_HOST_</SMTPHost>
>      <to>_TO_ADDRESS_</to>
>      <from>_FROM_ADDRESS_</from>
>      <subject>logback logrecord</subject>
>      <layout class="ch.qos.logback.classic.PatternLayout">
>        <pattern>%date{yyyy-MM-dd HH:mm:ss}  %class %method
> \(%file:%line\)%n  %level: %message%n</pattern>
>      </layout>
>      <evaluator class="packagename.AlwaysTrueEvaluator"/>
>    </appender>
> 
>    <root>
>      <level value ="debug"/>
>      <appender-ref ref="RootFileAppender"/>
>      <appender-ref ref="RootEmailAppender"/>
>    </root>
> 
> </configuration>
> 
> 
> I'm using logback 0.9.9 with slf4j 1.5.5 on Tomcat 6.0.
> 
> Any help is greatly appreciated!
> 
> Kind regards, Joop Vriend.
> 
-- 
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch


More information about the Logback-user mailing list