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

一、引言

其实Druid的内置了log4jdbc来显示SQL语句,虽然显示效果不如原生的log4jdbc效果好,但是因为内置所以不需要其他更多的配置。

二、使用

1. 创建基于druid的logger
 
     
  1. id="log-filter" class="com.alibaba.druid.filter.logging.Slf4jLogFilter">
  2. name="connectionLogEnabled" value="false"/>
  3. name="statementLogEnabled" value="false"/>
  4. name="resultSetLogEnabled" value="true"/>
  5. name="statementExecutableSqlLogEnable" value="true"/>
a.  resultSetLogEnabled 表示是否显示结果集。
b.  statementExecutableSqlLogEnable 表示是否显示SQL语句。
2. 在 DruidDataSource中配置
 
     
  1. id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
  2. .....
  3. name="filters" value="stat,wall"/>
  4. ......
  5. name="proxyFilters">
  6. bean="log-filter"/>
proxyFilters是代理filter的意思,将我们在第一步创建的log-filter写入进去。

三、log4j2中的设置

 
     
  1. xml version="1.0" encoding="UTF-8"?>
  2. status="warn" monitorInterval="30" strict="true" schema="Log4J-V2.2.xsd">
  3. name="logdir">${sys:catalina.base}/logs
  4. name="Console" target="SYSTEM_OUT">
  5. pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %level [%C{36}.%M] - %msg%n"/>
  6. name="RollingFile" fileName="conerstone.log"
  7. filePattern="${logdir}/logs/$${date:yyyy-MM}/xjj-%d{yyyy-MM-dd}-%i.log.gz">
  8. pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %level [%C{36}.%M] - %msg%n"/>
  9. size="1 MB"/>
  10. level="info">
  11. ref="Console"/>
  12. ref="RollingFile"/>
  13. name="org.springframework.web" level="debug" additivity="false">
  14. ref="Console"/>
  15. name="com.mc.core.service" level="debug" additivity="false">
  16. ref="Console"/>
  17. name="druid.sql.Statement" level="debug" additivity="false">
  18. ref="Console"/>
  19. name="druid.sql.ResultSet" level="debug" additivity="false">
  20. ref="Console"/>
其中需要特别注意41行之后的代码,表示是否显示sql语句和结果,如果不想显示结果,可以在第一步中将 resultSetLogEnabled 改为false

你可能感兴趣的:(Druid搭配log4j2输出SQL语句和结果)