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="/data/logs/crm/${springAppName}" />
8
9 <!-- You can override this to have a custom pattern -->
10 <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}" />
11
12 <springProfile name="local,dev,test">
13 <!-- Appender to log to console -->
14 <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
15 <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
16 <!-- Minimum logging level to be presented in the console logs -->
17 <level>DEBUG</level>
18 </filter>
19 <encoder>
20 <pattern>${CONSOLE_LOG_PATTERN}</pattern>
21 <charset>utf8</charset>
22 </encoder>
23 </appender>
24 <root level="INFO">
25 <appender-ref ref="console" />
26 </root>
27 <!--打印sql语句-->
28 <!-- <logger name="com.tomato.boss.alarm.mapper" level="debug" additivity="false">
29 <appender-ref ref="console" />
30 </logger> -->
31
32 </springProfile>
33
34 <springProfile name="test,pre,prod">
35 <!-- Appender to log to file -->
36 <appender name="flatfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
37 <file>${LOG_FILE}.log</file>
38 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
39 <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.gz</fileNamePattern>
40 <maxHistory>30</maxHistory>
41 </rollingPolicy>
42 <encoder>
43 <pattern>${CONSOLE_LOG_PATTERN}</pattern>
44 <charset>utf8</charset>
45 </encoder>
46 </appender>
47
48 <appender name="logstash"
49 class="ch.qos.logback.core.rolling.RollingFileAppender">
50 <file>${LOG_FILE}.json</file>
51 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
52 <fileNamePattern>${LOG_FILE}.json.%d{yyyy-MM-dd}.gz
53 </fileNamePattern>
54 <maxHistory>7</maxHistory>
55 </rollingPolicy>
56 <encoder
57 class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
58 <providers>
59 <timestamp>
60 <timeZone>UTC+8</timeZone>
61 </timestamp>
62 <pattern>
63 <pattern>
64 {
65 "severity": "%level",
66 "service": "${springAppName:-}",
67 "trace": "%X{X-B3-TraceId:-}",
68 "span": "%X{X-B3-SpanId:-}",
69 "parent": "%X{X-B3-ParentSpanId:-}",
70 "exportable": "%X{X-Span-Export:-}",
71 "pid": "${PID:-}",
72 "thread": "%thread",
73 "class": "%logger{40}",
74 "rest": "%message"
75 }
76 </pattern>
77 </pattern>
78 </providers>
79 </encoder>
80 </appender>
81
82 <root level="INFO">
83 <appender-ref ref="flatfile" />
84 <!-- uncomment this to have also JSON logs -->
85 <appender-ref ref="logstash"/>
86 </root>
87 </springProfile>
88 </configuration>