Druid搭配log4j2输出SQL语句和结果

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Druid搭配log4j2输出SQL语句和结果
⼀、引⾔
其实Druid的内置了log4jdbc来显⽰SQL语句,虽然显⽰效果不如原⽣的log4jdbc效果好,但是因为内置所以不需要其他更多的配置。

⼆、使⽤
1. 创建基于druid的logger
1. <bean id="log-filter" class="com.alibaba.druid.filter.logging.Slf4jLogFilter">
2. <property name="connectionLogEnabled" value="false"/>
3. <property name="statementLogEnabled" value="false"/>
4. <property name="resultSetLogEnabled" value="true"/>
5. <property name="statementExecutableSqlLogEnable" value="true"/>
6. </bean>
a. resultSetLogEnabled表⽰是否显⽰结果集。

b. statementExecutableSqlLogEnable 表⽰是否显⽰SQL语句。

2. 在 DruidDataSource中配置
1. <!-- 数据连接池 -->
2. <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
3. .....
4. <property name="filters" value="stat,wall"/>
5. ......
6. <property name="proxyFilters">
7. <list>
8. <ref bean="log-filter"/>
9. </list>
10. </property>
11. </bean>
proxyFilters是代理filter的意思,将我们在第⼀步创建的log-filter写⼊进去。

三、log4j2中的设置
1. <?xml version="1.0" encoding="UTF-8"?>
2. <!-- Log4j 2.x 配置⽂件。

每30秒⾃动检查和应⽤配置⽂件的更新; -->
3. <configuration status="warn" monitorInterval="30" strict="true" schema="Log4J-V2.2.xsd">
4. <Properties>
5. <Property name="logdir">${sys:catalina.base}/logs</Property>
6. </Properties>
7. <appenders>
8. <!-- 输出到控制台 -->
9. <console name="Console" target="SYSTEM_OUT">
10. <!-- 需要记录的级别 -->
11. <!-- <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY" /> -->
12. <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %level [%C{36}.%M] - %msg%n"/>
13. </console>
14.
15. <!-- 输出到⽂件,按天或者超过80MB分割 -->
16. <rollingFile name="RollingFile" fileName="conerstone.log"
17. filePattern="${logdir}/logs/$${date:yyyy-MM}/xjj-%d{yyyy-MM-dd}-%i.log.gz">
18. <!-- 需要记录的级别 -->
19. <!-- <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" /> -->
20. <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %level [%C{36}.%M] - %msg%n"/>
21. <policies>
22. <onStartupTriggeringPolicy/>
23. <timeBasedTriggeringPolicy/>
24. <sizeBasedTriggeringPolicy size="1 MB"/>
25. </policies>
26. </rollingFile>
27. </appenders>
28. <loggers>
29. <!-- 全局配置 -->
30. <root level="info">
31. <appenderRef ref="Console"/>
32. <appenderRef ref="RollingFile"/>
33. </root>
34. <logger name="org.springframework.web" level="debug" additivity="false">
35. <appenderRef ref="Console"/>
36. </logger>
37. <logger name="com.mc.core.service" level="debug" additivity="false">
38. <appender-ref ref="Console"/>
39. </logger>
40.
41. <!-- druid配置 -->
42. <logger name="druid.sql.Statement" level="debug" additivity="false">
43. <appender-ref ref="Console"/>
44. </logger>
45.
46. <logger name="druid.sql.ResultSet" level="debug" additivity="false">
47. <appender-ref ref="Console"/>
48. </logger>
49. </loggers>
50.
51. </configuration>
其中需要特别注意41⾏之后的代码,表⽰是否显⽰sql语句和结果,如果不想显⽰结果,可以在第⼀步中将resultSetLogEnabled 改为false。

相关文档
最新文档