You can only have a single root element. If you want to filter log events by severity / priority by appender, then you should use the ThresholdFilter filter per appender.
On Mon, Mar 27, 2017 at 4:42 AM, Thomas Grainger <[email protected]> wrote: > I have a config file: > > <configuration> > > <conversionRule conversionWord="coloredLevel" > converterClass="play.api.Logger$ColoredLevel" > /> > <contextListener class="com.procensus.backend. > logging.LoggerStartupListener"/> > > <appender name="FILE" class="ch.qos.logback.core.FileAppender"> > <file>${application.home}/logs/application.log</file> > <encoder> > <pattern>%date - [%level] - from %logger in %thread > %n%message%n%xException%n</pattern> > </encoder> > </appender> > > <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> > <encoder> > <pattern>%coloredLevel %logger{15} - %message%n%xException{5}</ > pattern> > </encoder> > </appender> > > <appender name="CLOUDWATCH_SYNC" class="ca.pjer.logback. > AwsLogsAppender"> > <logRegion>eu-west-1</logRegion> > <logGroupName>procensus/backend</logGroupName> > <logStreamName>${EC2_METADATA_IP_ADDRESS}</logStreamName> > <layout class="ch.qos.logback.contrib.json.classic.JsonLayout"> > <jsonFormatter class="ch.qos.logback.contrib. > jackson.JacksonJsonFormatter"> > <prettyPrint>false</prettyPrint> > </jsonFormatter> > </layout> > </appender> > > <appender name="CLOUDWATCH" class="ch.qos.logback.classic. > AsyncAppender"> > <appender-ref ref="CLOUDWATCH_SYNC"/> > </appender> > > <appender name="SENTRY" class="com.getsentry.raven. > logback.SentryAppender"> > <dsn>https://redacted:[email protected]/redacted</dsn> > </appender> > > <logger name="play" level="INFO" /> > <logger name="application" level="DEBUG" /> > > <!-- Off these ones as they are annoying, and anyway we manage > configuration ourself --> > <logger name="com.avaje.ebean.config.PropertyMapLoader" level="OFF" /> > <logger name="com.avaje.ebeaninternal.server.core.XmlConfigLoader" > level="OFF" /> > <logger name="com.avaje.ebeaninternal.server.lib.BackgroundThread" > level="OFF" /> > <logger name="com.gargoylesoftware.htmlunit.javascript" level="OFF" /> > <logger name="com.amazonaws.request" level="OFF" /> > > <root level="ERROR"> > <appender-ref ref="STDOUT" /> > <appender-ref ref="FILE" /> > </root> > > <root level="INFO"> > <appender-ref ref="CLOUDWATCH" /> > </root> > > <root level="WARN"> > <appender-ref ref="SENTRY" /> > </root> > > </configuration> > > However, even though I have root level="WARN" for Sentry, I get all > logging events (eg INFO level) > > > > When I configure a filter, my process doesn't even boot, with no error > message at all: > > > <configuration> > > <conversionRule conversionWord="coloredLevel" > converterClass="play.api.Logger$ColoredLevel" > /> > <contextListener class="com.procensus.backend. > logging.LoggerStartupListener"/> > > <appender name="FILE" class="ch.qos.logback.core.FileAppender"> > <file>${application.home}/logs/application.log</file> > <encoder> > <pattern>%date - [%level] - from %logger in %thread > %n%message%n%xException%n</pattern> > </encoder> > </appender> > > <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> > <encoder> > <pattern>%coloredLevel %logger{15} - %message%n%xException{5}</ > pattern> > </encoder> > </appender> > > <appender name="CLOUDWATCH_SYNC" class="ca.pjer.logback. > AwsLogsAppender"> > <logRegion>eu-west-1</logRegion> > <logGroupName>procensus/backend</logGroupName> > <logStreamName>${EC2_METADATA_IP_ADDRESS}</logStreamName> > <layout class="ch.qos.logback.contrib.json.classic.JsonLayout"> > <jsonFormatter class="ch.qos.logback.contrib. > jackson.JacksonJsonFormatter"> > <prettyPrint>false</prettyPrint> > </jsonFormatter> > </layout> > </appender> > > <appender name="CLOUDWATCH" class="ch.qos.logback.classic. > AsyncAppender"> > <appender-ref ref="CLOUDWATCH_SYNC"/> > </appender> > > <appender name="SENTRY" class="com.getsentry.raven. > logback.SentryAppender"> > <dsn>https://redacted:[email protected]/redacted</dsn> > <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> > <level>WARN</level> > </filter> > </appender> > > <logger name="play" level="INFO" /> > <logger name="application" level="DEBUG" /> > > <!-- Off these ones as they are annoying, and anyway we manage > configuration ourself --> > <logger name="com.avaje.ebean.config.PropertyMapLoader" level="OFF" /> > <logger name="com.avaje.ebeaninternal.server.core.XmlConfigLoader" > level="OFF" /> > <logger name="com.avaje.ebeaninternal.server.lib.BackgroundThread" > level="OFF" /> > <logger name="com.gargoylesoftware.htmlunit.javascript" level="OFF" /> > <logger name="com.amazonaws.request" level="OFF" /> > > <root level="ERROR"> > <appender-ref ref="STDOUT" /> > <appender-ref ref="FILE" /> > </root> > > <root level="INFO"> > <appender-ref ref="CLOUDWATCH" /> > </root> > > <root level="WARN"> > <appender-ref ref="SENTRY" /> > </root> > > </configuration> > > Thomas Grainger > > _______________________________________________ > logback-user mailing list > [email protected] > http://mailman.qos.ch/mailman/listinfo/logback-user > -- [image: email-signature-logo.jpg] *Andy Feller* Sr. DevOps Engineer 900 Main Campus Drive, Suite 500 Raleigh, NC 27606 Bandwidth <http://www.bandwidth.com/> <http://www.bandwidth.com/>e [email protected]
_______________________________________________ logback-user mailing list [email protected] http://mailman.qos.ch/mailman/listinfo/logback-user
