Hello Ceki, Thanks a lot for the very quick reply!
You were right: the output contained an ERROR: 'Mandatory "name" attribute not set for <evaluator>'. The name-attribute is *not* mentioned in your CounterBasedEvaluator example in your Appender documentation: http://logback.qos.ch/manual/appenders.html#SMTPAppender And I couldn't find a XSD- or a DTD-file for the logback configuration. Now I added the name-attribute, but I get a different ERROR: Evaluator of type [packagename.AlwaysTrueEvaluator] is not of the desired type Again, I based my code on your CounterBasedEvaluator example. Any ideas? Thanks again, Joop. On 10/20/2008 10:16 PM, Ceki Gulcu wrote: > 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. >> _______________________________________________ Logback-user mailing list [email protected] http://qos.ch/mailman/listinfo/logback-user
