Skip to content

Instantly share code, notes, and snippets.

@elifarley
Last active January 27, 2017 07:05
Show Gist options
  • Save elifarley/9da3f4e84073386e45d2364f227fc46d to your computer and use it in GitHub Desktop.
Save elifarley/9da3f4e84073386e45d2364f227fc46d to your computer and use it in GitHub Desktop.
Logback configuration with JSON output when run in a container
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="120 seconds" packagingData="false">
<if condition='p("HOME").startsWith("/app")'><then> <!-- Docker -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<!--<timeZone>UTC</timeZone>-->
<timeZone>Brazil/East</timeZone>
<includeContext>false</includeContext>
<includeCallerData>false</includeCallerData>
<fieldNames class="net.logstash.logback.fieldnames.ShortenedFieldNames">
<message>m</message>
<logger>l</logger>
<thread>t</thread>
<level>p</level>
<timestamp>@</timestamp>
<levelValue>[ignore]</levelValue>
<version>[ignore]</version>
</fieldNames>
<shortenedLoggerNameLength>20</shortenedLoggerNameLength>
<throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
<rootCauseFirst>true</rootCauseFirst>
<shortenedClassNameLength>260</shortenedClassNameLength>
<maxDepthPerThrowable>5</maxDepthPerThrowable>
<maxLength>2048</maxLength>
<exclude>sun\.reflect\..*\.invoke.*</exclude>
<exclude>com\.sun\..*</exclude>
<exclude>sun\.net\..*</exclude>
<exclude>net\.sf\.cglib\.proxy\.MethodProxy\.invoke</exclude>
<exclude>org\.springframework\.cglib\..*</exclude>
<exclude>org\.springframework\.transaction\..*</exclude>
<exclude>org\.springframework\.validation\..*</exclude>
<exclude>org\.springframework\.app\..*</exclude>
<exclude>org\.springframework\.aop\..*</exclude>
<exclude>java\.lang\.reflect\.Method\.invoke</exclude>
<exclude>org\.springframework\.ws\..*\.invoke</exclude>
<exclude>org\.springframework\.ws\.transport\..*</exclude>
<exclude>org\.springframework\.ws\.soap\.saaj\.SaajSoapMessage\.*</exclude>
<exclude>org\.springframework\.ws\.client\.core\.WebServiceTemplate\..*</exclude>
<exclude>org\.springframework\.web\.filter\..*</exclude>
<exclude>org\.springframework\.boot\.actuate\.autoconfigure\.MetricFilterAutoConfiguration\.*</exclude>
<exclude>org\.apache\.tomcat\..*</exclude>
<exclude>org\.apache\.catalina\..*</exclude>
<exclude>org\.apache\.coyote\..*</exclude>
<exclude>java\.util\.concurrent\.ThreadPoolExecutor\.runWorker.*</exclude>
</throwableConverter>
</encoder>
</appender>
<root level="ERROR">
<appender-ref ref="STDOUT" />
</root>
</then><else>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/application-debug.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS}:%5p [%20t] %-40.40logger{39} : %m%n</pattern>
</encoder>
</appender>
<appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>logs/application-info.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS}:%5p [%20t] %-40.40logger{39} : %m%n</pattern>
</encoder>
</appender>
<root level="ERROR">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE_INFO" />
<appender-ref ref="FILE_DEBUG" />
</root>
</else></if>
<logger name="com.mycompany.myapp" level="DEBUG" />
<logger name="org.springframework" level="INFO" />
<logger name="org.springframework.ws.client.MessageTracing">
<level value="TRACE"/>
</logger>
<logger name="org.springframework.ws.server.MessageTracing">
<level value="TRACE"/>
</logger>
<logger name="org.springframework.integration.mail.ImapMailReceiver">
<level value="ERROR" />
</logger>
</configuration>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment