logback\346\227\245\345\277\227\351\205\215\347\275\256.md
... ...
@@ -1,14 +1,14 @@
1 1
# logback日志配置
2 2
3
-### 1. application-dev.properties 配置文件添加logback配置
3
+## 1. application-dev.properties 配置文件添加logback配置
4 4
5 5
`logging.config=classpath:logback-spring.xml
6 6
`
7 7
8
-### 2. 复制 logback-spring.xml 到 /src/main/resources目录
8
+## 2. 复制 logback-spring.xml 到 /src/main/resources目录
9 9
10 10
11
-### 3. 输出SQL :修改RelationDBAccessor的日志级别为DEBUG,默认不输出SQL,生产环境不建议输出SQL
11
+## 3. 输出SQL :修改RelationDBAccessor的日志级别为DEBUG,默认不输出SQL,生产环境不建议输出SQL
12 12
13 13
```xml
14 14
<logger name="com.sie.snest.engine.db.relationdb.RelationDBAccessor" level="DEBUG" additivity="false">
... ...
@@ -16,7 +16,7 @@
16 16
<appender-ref ref="SQL_LOG" />
17 17
</logger>
18 18
```
19
-### 4. 输出分表SQL日志控制,INFO为打开,ERROR为关闭,生产环境不建议输出SQL
19
+## 4. 输出分表SQL日志控制,INFO为打开,ERROR为关闭,生产环境不建议输出SQL
20 20
```xml
21 21
<!-- 分表SQL日志控制,INFO为打开,ERROR为关闭-->
22 22
<logger name="ShardingSphere-SQL" level="INFO" additivity="false">
... ...
@@ -180,3 +180,120 @@ logback-spring.xml 配置
180 180
```
181 181
182 182
183
+
184
+## 2.生产环境配置SQL异步输出
185
+
186
+```xml
187
+<?xml version="1.0" encoding="UTF-8"?>
188
+<configuration scan="true">
189
+
190
+ <property name="LOG_BASE" value="logs" />
191
+
192
+ <!--控制台日志 -->
193
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
194
+ <encoder>
195
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern>
196
+ </encoder>
197
+ </appender>
198
+
199
+ <!--普通日志 -->
200
+ <appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
201
+ <encoder>
202
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern>
203
+ </encoder>
204
+ <file>${LOG_BASE}/root.log</file>
205
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
206
+ <fileNamePattern>${LOG_BASE}/root.%d{yyyyMMdd}.%i.log</fileNamePattern>
207
+ <maxFileSize>128MB</maxFileSize>
208
+ <maxHistory>60</maxHistory>
209
+ <totalSizeCap>30GB</totalSizeCap>
210
+ </rollingPolicy>
211
+ </appender>
212
+
213
+ <!--错误日志 -->
214
+ <appender name="ERROR_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
215
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
216
+ <level>ERROR</level>
217
+ <onMatch>ACCEPT</onMatch>
218
+ <onMismatch>DENY</onMismatch>
219
+ </filter>
220
+ <encoder>
221
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern>
222
+ </encoder>
223
+ <file>${LOG_BASE}/error.log</file>
224
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
225
+ <fileNamePattern>${LOG_BASE}/error.%d{yyyyMMdd}.%i.log
226
+ </fileNamePattern>
227
+ <!-- 每天一个日志文件,当天的日志文件超过10MB时,生成新的日志文件,当天的日志文件数量超过totalSizeCap/maxFileSize,日志文件就会被回滚覆盖。 -->
228
+ <maxFileSize>10MB</maxFileSize>
229
+ <maxHistory>30</maxHistory>
230
+ <totalSizeCap>5GB</totalSizeCap>
231
+ </rollingPolicy>
232
+ </appender>
233
+
234
+
235
+
236
+ <!--SQL日志 -->
237
+ <appender name="SQL_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
238
+ <encoder>
239
+ <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} -%msg%n</pattern>
240
+ </encoder>
241
+ <file>${LOG_BASE}/sqllogfile.log</file>
242
+ <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
243
+ <fileNamePattern>${LOG_BASE}/sqllogfile.%d{yyyyMMdd}.%i.log</fileNamePattern>
244
+ <maxFileSize>128MB</maxFileSize>
245
+ <maxHistory>60</maxHistory>
246
+ <totalSizeCap>30GB</totalSizeCap>
247
+ </rollingPolicy>
248
+ </appender>
249
+
250
+ <!-- SQL异步输出 -->
251
+ <appender name="SQL_ASYNC_LOG" class="ch.qos.logback.classic.AsyncAppender">
252
+ <discardingThreshold>0</discardingThreshold>
253
+ <queueSize>512</queueSize>
254
+ <appender-ref ref="SQL_LOG" />
255
+ </appender>
256
+
257
+
258
+
259
+
260
+ <root level="INFO">
261
+ <appender-ref ref="STDOUT" />
262
+ <appender-ref ref="LOG_FILE" />
263
+ <appender-ref ref="ERROR_LOG" />
264
+ <appender-ref ref="SQL_ASYNC_LOG" />
265
+ </root>
266
+
267
+
268
+ <logger name="org.hibernate" level="ERROR" />
269
+ <logger name="io.netty" level="ERROR" />
270
+ <logger name="org.springframework" level="WARN" />
271
+ <logger name="org.redisson" level="ERROR" />
272
+
273
+
274
+ <!-- 耗时统计 -->
275
+ <logger name="com.sie.snest.engine.utils.TimeCounter" level="DEBUG">
276
+ <appender-ref ref="STDOUT" />
277
+ <appender-ref ref="LOG_FILE" />
278
+ </logger>
279
+
280
+ <!-- SQL日志输出到控制台和SQL_LOG文件,additivity=false表示不向root传递打印信息 -->
281
+ <logger name="com.sie.snest.engine.db.relationdb.RelationDBAccessor" level="DEBUG" additivity="false">
282
+ <appender-ref ref="STDOUT" />
283
+ <appender-ref ref="SQL_ASYNC_LOG" />
284
+ </logger>
285
+
286
+ <!-- 分表SQL日志控制,INFO为打开,ERROR为关闭 -->
287
+ <logger name="ShardingSphere-SQL" level="INFO" additivity="false">
288
+ <appender-ref ref="STDOUT" />
289
+ <appender-ref ref="SQL_ASYNC_LOG" />
290
+ </logger>
291
+
292
+
293
+</configuration>
294
+
295
+```
296
+
297
+
298
+
299
+