Permalink
<?xml version="1.0" encoding="UTF-8"?> | |
<configuration> | |
<include resource="org/springframework/boot/logging/logback/defaults.xml"/> | |
| |
<springProperty scope="context" name="springAppName" source="spring.application.name"/> | |
<!-- Example for logging into the build folder of your project --> | |
<property name="LOG_FILE" value="${BUILD_FOLDER:-build}/${springAppName}"/> | |
<!-- You can override this to have a custom pattern --> | |
<property name="CONSOLE_LOG_PATTERN" | |
value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/> | |
<!-- Appender to log to console --> | |
<appender name="console" class="ch.qos.logback.core.ConsoleAppender"> | |
<filter class="ch.qos.logback.classic.filter.ThresholdFilter"> | |
<!-- Minimum logging level to be presented in the console logs--> | |
<level>DEBUG</level> | |
</filter> | |
<encoder> | |
<pattern>${CONSOLE_LOG_PATTERN}</pattern> | |
<charset>utf8</charset> | |
</encoder> | |
</appender> | |
<!-- Appender to log to file --> | |
<appender name="flatfile" class="ch.qos.logback.core.rolling.RollingFileAppender"> | |
<file>${LOG_FILE}</file> | |
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | |
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern> | |
<maxHistory>7</maxHistory> | |
</rollingPolicy> | |
<encoder> | |
<pattern>${CONSOLE_LOG_PATTERN}</pattern> | |
<charset>utf8</charset> | |
</encoder> | |
</appender> | |
| |
<!-- Appender to log to file in a JSON format --> | |
<appender name="logstash" class="ch.qos.logback.core.rolling.RollingFileAppender"> | |
<file>${LOG_FILE}.json</file> | |
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | |
<fileNamePattern>${LOG_FILE}.json.%d{yyyy-MM-dd}.gz</fileNamePattern> | |
<maxHistory>7</maxHistory> | |
</rollingPolicy> | |
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"> | |
<providers> | |
<timestamp> | |
<timeZone>UTC</timeZone> | |
</timestamp> | |
<pattern> | |
<pattern> | |
{ | |
"severity": "%level", | |
"service": "${springAppName:-}", | |
"trace": "%X{traceId:-}", | |
"span": "%X{spanId:-}", | |
"baggage": "%X{key:-}", | |
"pid": "${PID:-}", | |
"thread": "%thread", | |
"class": "%logger{40}", | |
"rest": "%message" | |
} | |
</pattern> | |
</pattern> | |
</providers> | |
</encoder> | |
</appender> | |
| |
<root level="INFO"> | |
<appender-ref ref="console"/> | |
<!-- uncomment this to have also JSON logs --> | |
<!--<appender-ref ref="logstash"/>--> | |
<!--<appender-ref ref="flatfile"/>--> | |
</root> | |
</configuration> |