
ah ok, why did my application boot with the first configuration? Is that a logback bug? Thomas Grainger On 27 March 2017 at 13:39, Andrew Feller <afeller@bandwidth.com> wrote:
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 <tagrain@gmail.com> wrote:
I have a config file:
<configuration>
<conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" /> <contextListener class="com.procensus.backend.l ogging.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}</patt ern> </encoder> </appender>
<appender name="CLOUDWATCH_SYNC" class="ca.pjer.logback.AwsLogs Appender"> <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.log back.SentryAppender"> <dsn>https://redacted:redacted@sentry.io/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.l ogging.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}</patt ern> </encoder> </appender>
<appender name="CLOUDWATCH_SYNC" class="ca.pjer.logback.AwsLogs Appender"> <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.log back.SentryAppender"> <dsn>https://redacted:redacted@sentry.io/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 logback-user@qos.ch 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 afeller@bandwidth.com
_______________________________________________ logback-user mailing list logback-user@qos.ch http://mailman.qos.ch/mailman/listinfo/logback-user