<div dir="ltr"><div><div>I have a config file:<br><br><configuration><br><br>  <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" /><br>  <contextListener class="com.procensus.backend.logging.LoggerStartupListener"/><br><br>  <appender name="FILE" class="ch.qos.logback.core.FileAppender"><br>     <file>${application.home}/logs/application.log</file><br>     <encoder><br>       <pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern><br>     </encoder><br>   </appender><br><br>  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><br>    <encoder><br>      <pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern><br>    </encoder><br>  </appender><br><br>  <appender name="CLOUDWATCH_SYNC" class="ca.pjer.logback.AwsLogsAppender"><br>      <logRegion>eu-west-1</logRegion><br>      <logGroupName>procensus/backend</logGroupName><br>      <logStreamName>${EC2_METADATA_IP_ADDRESS}</logStreamName><br>      <layout class="ch.qos.logback.contrib.json.classic.JsonLayout"><br>          <jsonFormatter class="ch.qos.logback.contrib.jackson.JacksonJsonFormatter"><br>              <prettyPrint>false</prettyPrint><br>          </jsonFormatter><br>      </layout><br>  </appender><br><br>  <appender name="CLOUDWATCH" class="ch.qos.logback.classic.AsyncAppender"><br>      <appender-ref ref="CLOUDWATCH_SYNC"/><br>  </appender><br><br>  <appender name="SENTRY" class="com.getsentry.raven.logback.SentryAppender"><br>    <dsn><a href="https://redacted:redacted@sentry.io/redacted">https://redacted:redacted@sentry.io/redacted</a></dsn><br>  </appender><br><br>  <logger name="play" level="INFO" /><br>  <logger name="application" level="DEBUG" /><br><br>  <!-- Off these ones as they are annoying, and anyway we manage configuration ourself --><br>  <logger name="com.avaje.ebean.config.PropertyMapLoader" level="OFF" /><br>  <logger name="com.avaje.ebeaninternal.server.core.XmlConfigLoader" level="OFF" /><br>  <logger name="com.avaje.ebeaninternal.server.lib.BackgroundThread" level="OFF" /><br>  <logger name="com.gargoylesoftware.htmlunit.javascript" level="OFF" /><br>  <logger name="com.amazonaws.request" level="OFF" /><br><br>  <root level="ERROR"><br>    <appender-ref ref="STDOUT" /><br>    <appender-ref ref="FILE" /><br>  </root><br><br>  <root level="INFO"><br>    <appender-ref ref="CLOUDWATCH" /><br>  </root><br><br>  <root level="WARN"><br>    <appender-ref ref="SENTRY" /><br>  </root><br><br></configuration><br><br></div>However, even though I have root level="WARN" for Sentry, I get all logging events (eg INFO level)<br><br><br><br></div>When I configure a filter, my process doesn't even boot, with no error message at all:<br><br><br><configuration><br><br>  <conversionRule conversionWord="coloredLevel" converterClass="play.api.Logger$ColoredLevel" /><br>  <contextListener class="com.procensus.backend.logging.LoggerStartupListener"/><br><br>  <appender name="FILE" class="ch.qos.logback.core.FileAppender"><br>     <file>${application.home}/logs/application.log</file><br>     <encoder><br>       <pattern>%date - [%level] - from %logger in %thread %n%message%n%xException%n</pattern><br>     </encoder><br>   </appender><br><br>  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><br>    <encoder><br>      <pattern>%coloredLevel %logger{15} - %message%n%xException{5}</pattern><br>    </encoder><br>  </appender><br><br>  <appender name="CLOUDWATCH_SYNC" class="ca.pjer.logback.AwsLogsAppender"><br>      <logRegion>eu-west-1</logRegion><br>      <logGroupName>procensus/backend</logGroupName><br>      <logStreamName>${EC2_METADATA_IP_ADDRESS}</logStreamName><br>      <layout class="ch.qos.logback.contrib.json.classic.JsonLayout"><br>          <jsonFormatter class="ch.qos.logback.contrib.jackson.JacksonJsonFormatter"><br>              <prettyPrint>false</prettyPrint><br>          </jsonFormatter><br>      </layout><br>  </appender><br><br>  <appender name="CLOUDWATCH" class="ch.qos.logback.classic.AsyncAppender"><br>      <appender-ref ref="CLOUDWATCH_SYNC"/><br>  </appender><br><br>  <appender name="SENTRY" class="com.getsentry.raven.logback.SentryAppender"><br>    <dsn><a href="https://redacted:redacted@sentry.io/redacted">https://redacted:redacted@sentry.io/redacted</a></dsn><br>    <filter class="ch.qos.logback.classic.filter.ThresholdFilter"><br>      <level>WARN</level><br>    </filter><br>  </appender><br><br>  <logger name="play" level="INFO" /><br>  <logger name="application" level="DEBUG" /><br><br>  <!-- Off these ones as they are annoying, and anyway we manage configuration ourself --><br>  <logger name="com.avaje.ebean.config.PropertyMapLoader" level="OFF" /><br>  <logger name="com.avaje.ebeaninternal.server.core.XmlConfigLoader" level="OFF" /><br>  <logger name="com.avaje.ebeaninternal.server.lib.BackgroundThread" level="OFF" /><br>  <logger name="com.gargoylesoftware.htmlunit.javascript" level="OFF" /><br>  <logger name="com.amazonaws.request" level="OFF" /><br><br>  <root level="ERROR"><br>    <appender-ref ref="STDOUT" /><br>    <appender-ref ref="FILE" /><br>  </root><br><br>  <root level="INFO"><br>    <appender-ref ref="CLOUDWATCH" /><br>  </root><br><br>  <root level="WARN"><br>    <appender-ref ref="SENTRY" /><br>  </root><br><br></configuration><br><div><br clear="all"><div><div><div><div class="gmail_signature">Thomas Grainger</div></div>
</div></div></div></div>