zoukankan      html  css  js  c++  java
  • 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. <!-- 输出到文件,按天或者超过80MB分割 -->
    15. <rollingFile name="RollingFile" fileName="conerstone.log"
    16. filePattern="${logdir}/logs/$${date:yyyy-MM}/xjj-%d{yyyy-MM-dd}-%i.log.gz">
    17. <!-- 需要记录的级别 -->
    18. <!-- <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" /> -->
    19. <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %level [%C{36}.%M] - %msg%n"/>
    20. <policies>
    21. <onStartupTriggeringPolicy/>
    22. <timeBasedTriggeringPolicy/>
    23. <sizeBasedTriggeringPolicy size="1 MB"/>
    24. </policies>
    25. </rollingFile>
    26. </appenders>
    27. <loggers>
    28. <!-- 全局配置 -->
    29. <root level="info">
    30. <appenderRef ref="Console"/>
    31. <appenderRef ref="RollingFile"/>
    32. </root>
    33. <logger name="org.springframework.web" level="debug" additivity="false">
    34. <appenderRef ref="Console"/>
    35. </logger>
    36. <logger name="com.mc.core.service" level="debug" additivity="false">
    37. <appender-ref ref="Console"/>
    38. </logger>
    39. <!-- druid配置 -->
    40. <logger name="druid.sql.Statement" level="debug" additivity="false">
    41. <appender-ref ref="Console"/>
    42. </logger>
    43. <logger name="druid.sql.ResultSet" level="debug" additivity="false">
    44. <appender-ref ref="Console"/>
    45. </logger>
    46. </loggers>
    47. </configuration>
    其中需要特别注意41行之后的代码,表示是否显示sql语句和结果,如果不想显示结果,可以在第一步中将resultSetLogEnabled 改为false
  • 相关阅读:
    微信授权页面执行ajax不执行,刷新才能执行
    spring boot使用jpa的@Modify的clearAutomatically=true的作用
    Excel转HTML
    reporting reportservice(SSRS) 让某行变成自增序号
    Excel的操作插件
    https-加解密
    防篡改防重
    加密解密
    git 常用命令

  • 原文地址:https://www.cnblogs.com/LiuChunfu/p/6592388.html
Copyright © 2011-2022 走看看