1+ <?xml version =" 1.0" encoding =" UTF-8" ?>
2+ <configuration >
3+ <include resource =" org/springframework/boot/logging/logback/defaults.xml" />
4+
5+ <springProperty scope =" context" name =" springAppName" source =" spring.application.name" />
6+ <!-- Example for logging into the build folder of your project -->
7+ <property name =" LOG_FILE" value =" ${BUILD_FOLDER:-build}/${springAppName}" />
8+
9+ <property name =" CONSOLE_LOG_PATTERN"
10+ value =" %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr([${springAppName:-},%X{X-B3-TraceId:-},%X{X-B3-SpanId:-},%X{X-Span-Export:-}]){yellow} %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}" />
11+
12+ <!-- Appender to log to console -->
13+ <appender name =" console" class =" ch.qos.logback.core.ConsoleAppender" >
14+ <filter class =" ch.qos.logback.classic.filter.ThresholdFilter" >
15+ <!-- Minimum logging level to be presented in the console logs-->
16+ <level >INFO</level >
17+ </filter >
18+ <encoder >
19+ <pattern >${CONSOLE_LOG_PATTERN}</pattern >
20+ <charset >utf8</charset >
21+ </encoder >
22+ </appender >
23+
24+ <!-- Appender to log to file -->
25+ <!-- <appender name="flatfile" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
26+ <!-- <file>${LOG_FILE}</file>-->
27+ <!-- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
28+ <!-- <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>-->
29+ <!-- <maxHistory>7</maxHistory>-->
30+ <!-- </rollingPolicy>-->
31+ <!-- <encoder>-->
32+ <!-- <pattern>${CONSOLE_LOG_PATTERN}</pattern>-->
33+ <!-- <charset>utf8</charset>-->
34+ <!-- </encoder>-->
35+ <!-- </appender>-->
36+
37+ <!-- Appender to log to file in a JSON format -->
38+ <appender name =" logstash" class =" ch.qos.logback.core.rolling.RollingFileAppender" >
39+ <file >${LOG_FILE}.json</file >
40+ <rollingPolicy class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
41+ <fileNamePattern >${LOG_FILE}.json.%d{yyyy-MM-dd}.gz</fileNamePattern >
42+ <maxHistory >7</maxHistory >
43+ </rollingPolicy >
44+ <encoder class =" net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder" >
45+ <providers >
46+ <timestamp >
47+ <timeZone >UTC</timeZone >
48+ </timestamp >
49+ <pattern >
50+ <pattern >
51+ {
52+ "severity": "%level",
53+ "service": "${springAppName:-}",
54+ "trace": "%X{X-B3-TraceId:-}",
55+ "span": "%X{X-B3-SpanId:-}",
56+ "exportable": "%X{X-Span-Export:-}",
57+ "pid": "${PID:-}",
58+ "thread": "%thread",
59+ "class": "%logger{40}",
60+ "rest": "%message"
61+ }
62+ </pattern >
63+ </pattern >
64+ </providers >
65+ </encoder >
66+ </appender >
67+
68+ <root level =" INFO" >
69+ <appender-ref ref =" console" />
70+ <appender-ref ref =" logstash" />
71+ <!-- <appender-ref ref="flatfile"/>-->
72+ </root >
73+ </configuration >
0 commit comments