1+ <?xml version =" 1.0" encoding =" UTF-8" ?>
2+ <configuration scan =" true" scanPeriod =" 10 seconds" >
3+ <contextName >logback</contextName >
4+ <property name =" log.path" value =" ./logs" />
5+
6+ <!-- 彩色日志 -->
7+ <!-- 彩色日志依赖的渲染类 -->
8+ <conversionRule conversionWord =" clr" converterClass =" org.springframework.boot.logging.logback.ColorConverter" />
9+ <conversionRule conversionWord =" wex" converterClass =" org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
10+ <conversionRule conversionWord =" wEx" converterClass =" org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
11+ <!-- 彩色日志格式 -->
12+ <property name =" CONSOLE_LOG_PATTERN" value =" ${CONSOLE_LOG_PATTERN:-%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}}" />
13+
14+ <!-- 输出到控制台-->
15+ <appender name =" CONSOLE" class =" ch.qos.logback.core.ConsoleAppender" >
16+ <filter class =" ch.qos.logback.classic.filter.ThresholdFilter" >
17+ <level >info</level >
18+ </filter >
19+ <encoder >
20+ <Pattern >${CONSOLE_LOG_PATTERN}</Pattern >
21+ <charset >UTF-8</charset >
22+ </encoder >
23+ </appender >
24+
25+
26+ <!-- 输出到文件-->
27+
28+ <!-- 时间滚动输出 level为 DEBUG 日志 -->
29+ <appender name =" DEBUG_FILE" class =" ch.qos.logback.core.rolling.RollingFileAppender" >
30+ <file >${log.path}/log_debug.log</file >
31+ <!-- 日志文件输出格式-->
32+ <encoder >
33+ <pattern >%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern >
34+ <charset >UTF-8</charset > <!-- 设置字符集 -->
35+ </encoder >
36+ <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
37+ <rollingPolicy class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
38+ <!-- 日志归档 -->
39+ <fileNamePattern >${log.path}/log_debug_%d{yyyy-MM-dd}.%i.log</fileNamePattern >
40+ <timeBasedFileNamingAndTriggeringPolicy class =" ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
41+ <maxFileSize >100MB</maxFileSize >
42+ </timeBasedFileNamingAndTriggeringPolicy >
43+ <!-- 日志文件保留天数-->
44+ <maxHistory >2</maxHistory >
45+ <totalSizeCap >5GB</totalSizeCap >
46+ </rollingPolicy >
47+ <!-- 此日志文件只记录debug级别的 -->
48+ <filter class =" ch.qos.logback.classic.filter.LevelFilter" >
49+ <level >debug</level >
50+ <onMatch >ACCEPT</onMatch >
51+ <onMismatch >DENY</onMismatch >
52+ </filter >
53+ </appender >
54+
55+ <!-- 时间滚动输出 level为 INFO 日志 -->
56+ <appender name =" INFO_FILE" class =" ch.qos.logback.core.rolling.RollingFileAppender" >
57+ <!-- 正在记录的日志文件的路径及文件名 -->
58+ <file >${log.path}/log_info.log</file >
59+ <!-- 日志文件输出格式-->
60+ <encoder >
61+ <pattern >%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern >
62+ <charset >UTF-8</charset >
63+ </encoder >
64+ <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
65+ <rollingPolicy class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
66+ <!-- 每天日志归档路径以及格式 -->
67+ <fileNamePattern >${log.path}/log_info_%d{yyyy-MM-dd}.%i.log</fileNamePattern >
68+ <timeBasedFileNamingAndTriggeringPolicy class =" ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
69+ <maxFileSize >100MB</maxFileSize >
70+ </timeBasedFileNamingAndTriggeringPolicy >
71+ <!-- 日志文件保留天数-->
72+ <maxHistory >7</maxHistory >
73+ </rollingPolicy >
74+ <!-- 此日志文件只记录info级别的 -->
75+ <filter class =" ch.qos.logback.classic.filter.LevelFilter" >
76+ <level >info</level >
77+ <onMatch >ACCEPT</onMatch >
78+ <onMismatch >DENY</onMismatch >
79+ </filter >
80+ </appender >
81+
82+ <!-- 时间滚动输出 level为 WARN 日志 -->
83+ <appender name =" WARN_FILE" class =" ch.qos.logback.core.rolling.RollingFileAppender" >
84+ <!-- 正在记录的日志文件的路径及文件名 -->
85+ <file >${log.path}/log_warn.log</file >
86+ <!-- 日志文件输出格式-->
87+ <encoder >
88+ <pattern >%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern >
89+ <charset >UTF-8</charset > <!-- 此处设置字符集 -->
90+ </encoder >
91+ <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
92+ <rollingPolicy class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
93+ <fileNamePattern >${log.path}/log_warn_%d{yyyy-MM-dd}.%i.log</fileNamePattern >
94+ <timeBasedFileNamingAndTriggeringPolicy class =" ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
95+ <maxFileSize >100MB</maxFileSize >
96+ </timeBasedFileNamingAndTriggeringPolicy >
97+ <!-- 日志文件保留天数-->
98+ <maxHistory >7</maxHistory >
99+ </rollingPolicy >
100+ <!-- 此日志文件只记录warn级别的 -->
101+ <filter class =" ch.qos.logback.classic.filter.LevelFilter" >
102+ <level >warn</level >
103+ <onMatch >ACCEPT</onMatch >
104+ <onMismatch >DENY</onMismatch >
105+ </filter >
106+ </appender >
107+
108+
109+ <!-- 时间滚动输出 level为 ERROR 日志 -->
110+ <appender name =" ERROR_FILE" class =" ch.qos.logback.core.rolling.RollingFileAppender" >
111+ <!-- 正在记录的日志文件的路径及文件名 -->
112+ <file >${log.path}/log_error.log</file >
113+ <!-- 日志文件输出格式-->
114+ <encoder >
115+ <pattern >%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern >
116+ <charset >UTF-8</charset > <!-- 此处设置字符集 -->
117+ </encoder >
118+ <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
119+ <rollingPolicy class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
120+ <fileNamePattern >${log.path}/log_error_%d{yyyy-MM-dd}.%i.log</fileNamePattern >
121+ <timeBasedFileNamingAndTriggeringPolicy class =" ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
122+ <maxFileSize >100MB</maxFileSize >
123+ </timeBasedFileNamingAndTriggeringPolicy >
124+ <!-- 日志文件保留天数-->
125+ <maxHistory >7</maxHistory >
126+ </rollingPolicy >
127+ <!-- 此日志文件只记录ERROR级别的 -->
128+ <filter class =" ch.qos.logback.classic.filter.LevelFilter" >
129+ <level >ERROR</level >
130+ <onMatch >ACCEPT</onMatch >
131+ <onMismatch >DENY</onMismatch >
132+ </filter >
133+ </appender >
134+
135+ <!-- Metrics信息收集日志 -->
136+ <appender name =" ES_LOGGER" class =" ch.qos.logback.core.rolling.RollingFileAppender" >
137+ <file >${log.path}/es/es.log</file >
138+ <encoder >
139+ <pattern >%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern >
140+ <charset >UTF-8</charset >
141+ </encoder >
142+ <rollingPolicy class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
143+ <fileNamePattern >${log.path}/es/es_%d{yyyy-MM-dd}.%i.log</fileNamePattern >
144+ <timeBasedFileNamingAndTriggeringPolicy class =" ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
145+ <maxFileSize >100MB</maxFileSize >
146+ </timeBasedFileNamingAndTriggeringPolicy >
147+ <maxHistory >3</maxHistory >
148+ </rollingPolicy >
149+ </appender >
150+
151+ <!-- Metrics信息收集日志 -->
152+ <appender name =" METRIC_LOGGER" class =" ch.qos.logback.core.rolling.RollingFileAppender" >
153+ <file >${log.path}/metric/metrics.log</file >
154+ <encoder >
155+ <pattern >%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern >
156+ <charset >UTF-8</charset >
157+ </encoder >
158+ <rollingPolicy class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
159+ <fileNamePattern >${log.path}/metric/metrics_%d{yyyy-MM-dd}.%i.log</fileNamePattern >
160+ <timeBasedFileNamingAndTriggeringPolicy class =" ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
161+ <maxFileSize >100MB</maxFileSize >
162+ </timeBasedFileNamingAndTriggeringPolicy >
163+ <maxHistory >3</maxHistory >
164+ </rollingPolicy >
165+ </appender >
166+
167+ <!-- Task信息收集日志 -->
168+ <appender name =" TASK_LOGGER" class =" ch.qos.logback.core.rolling.RollingFileAppender" >
169+ <file >${log.path}/task/task.log</file >
170+ <encoder >
171+ <pattern >%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern >
172+ <charset >UTF-8</charset >
173+ </encoder >
174+ <rollingPolicy class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
175+ <fileNamePattern >${log.path}/task/task_%d{yyyy-MM-dd}.%i.log</fileNamePattern >
176+ <timeBasedFileNamingAndTriggeringPolicy class =" ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP" >
177+ <maxFileSize >100MB</maxFileSize >
178+ </timeBasedFileNamingAndTriggeringPolicy >
179+ <maxHistory >3</maxHistory >
180+ </rollingPolicy >
181+ </appender >
182+
183+ <!-- level为 DEBUG 日志,时间滚动输出 -->
184+ <appender name =" logIJobLogger" class =" ch.qos.logback.core.rolling.RollingFileAppender" >
185+ <file >${log.path}/logIJob/logIJob.log</file >
186+ <rollingPolicy class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
187+ <FileNamePattern >${log.path}/logIJob/logIJob.log.%d{yyyy-MM-dd}</FileNamePattern >
188+ <maxHistory >${maxHistory}</maxHistory >
189+ </rollingPolicy >
190+ <encoder >
191+ <pattern >%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern >
192+ <charset >UTF-8</charset >
193+ </encoder >
194+ </appender >
195+
196+ <logger name =" ES_LOGGER" level =" ERROR" additivity =" false" >
197+ <appender-ref ref =" ES_LOGGER" />
198+ </logger >
199+
200+ <logger name =" METRIC_LOGGER" level =" ERROR" additivity =" false" >
201+ <appender-ref ref =" METRIC_LOGGER" />
202+ </logger >
203+
204+ <logger name =" TASK_LOGGER" level =" ERROR" additivity =" false" >
205+ <appender-ref ref =" TASK_LOGGER" />
206+ </logger >
207+
208+ <logger name =" com.didiglobal.logi.job" level =" ERROR" additivity =" false" >
209+ <appender-ref ref =" logIJobLogger" />
210+ </logger >
211+
212+ <logger name =" org.apache.zookeeper" level =" WARN" additivity =" false" />
213+ <logger name =" org.apache.ibatis" level =" INFO" additivity =" false" />
214+ <logger name =" org.mybatis.spring" level =" INFO" additivity =" false" />
215+ <logger name =" com.github.miemiedev.mybatis.paginator" level =" INFO" additivity =" false" />
216+
217+ <root level =" debug" >
218+ <appender-ref ref =" CONSOLE" />
219+ <appender-ref ref =" DEBUG_FILE" />
220+ <appender-ref ref =" INFO_FILE" />
221+ <appender-ref ref =" WARN_FILE" />
222+ <appender-ref ref =" ERROR_FILE" />
223+ <!-- <appender-ref ref="METRICS_LOG" />-->
224+ </root >
225+
226+ <!-- 生产环境:输出到文件-->
227+ <!-- <springProfile name="pro">-->
228+ <!-- <root level="info">-->
229+ <!-- <appender-ref ref="CONSOLE" />-->
230+ <!-- <appender-ref ref="DEBUG_FILE" />-->
231+ <!-- <appender-ref ref="INFO_FILE" />-->
232+ <!-- <appender-ref ref="ERROR_FILE" />-->
233+ <!-- <appender-ref ref="WARN_FILE" />-->
234+ <!-- </root>-->
235+ <!-- </springProfile>-->
236+ </configuration >
0 commit comments