[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