log4j2不打印日志Druid搭配log4j2输出SQL语句和结果
一、引言其实Druid的内置了log4jdbc来显示SQL语句,虽然显示效果不如原生的log4jdbc效果好,但是因为内置所以不需要其他更多的配置。二、使用1. 创建基于druid的logger <bean id="log-filter" class="com.alibaba.druid.filter.logging.Slf4jLogFilter"> <property name="connectionLogEnabled" value="false"/> <property name="statementLogEnabled" value="false"/> <property name="resultSetLogEnabled" value="true"/> <property name="statementExecutableSqlLogEnable" value="true"/> </bean>a. resultSetLogEnabled表示是否显示结果集。b. statementExecutableSqlLogEnable 表示是否显示SQL语句。2. 在 DruidDataSource中配置 <!-- 数据连接池 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> ..... <property name="filters" value="stat,wall"/> ...... <property name="proxyFilters"> <list> <ref bean="log-filter"/> </list> </property> </bean>proxyFilters是代理filter的意思,将我们在第一步创建的log-filter写入进去。三、log4j2中的设置<?xml version="1.0" encoding="UTF-8"?><!-- Log4j 2.x 配置文件。每30秒自动检查和应用配置文件的更新; --><configuration status="warn" monitorInterval="30" strict="true" schema="Log4J-V2.2.xsd">
<Properties> <Property name="logdir">${sys:catalina.base}/logs</Property> </Properties> <appenders> <!-- 输出到控制台 --> <console name="Console" target="SYSTEM_OUT"> <!-- 需要记录的级别 --> <!-- <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY" /> --> <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %level [%C{36}.%M] - %msg%n"/> </console> <!-- 输出到文件,按天或者超过80MB分割 --> <rollingFile name="RollingFile" fileName="conerstone.log" filePattern="${logdir}/logs/$${date:yyyy-MM}/xjj-%d{yyyy-MM-dd}-%"> <!-- 需要记录的级别 --> <!-- <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" /> --> <PatternLayout pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %level [%C{36}.%M] - %msg%n"/> <policies> <onStartupTriggeringPolicy/> <timeBasedTriggeringPolicy/> <sizeBasedTriggeringPolicy size="1 MB"/> </policies> </rollingFile> </appenders> <loggers> <!-- 全局配置 --> <root level="info"> <appenderRef ref="Console"/> <appenderRef ref="RollingFile"/> </root> <l
ogger name="org.springframework.web" level="debug" additivity="false"> <appenderRef ref="Console"/> </logger> <logger name="service" level="debug" additivity="false"> <appender-ref ref="Console"/> </logger> <!-- druid配置 --> <logger name="druid.sql.Statement" level="debug" additivity="false"> <appender-ref ref="Console"/> </logger> <logger name="druid.sql.ResultSet" level="debug" additivity="false"> <appender-ref ref="Console"/> </logger> </loggers></configuration>其中需要特别注意41行之后的代码,表示是否显示sql语句和结果,如果不想显示结果,可以在第一步中将resultSetLogEnabled 改为false
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论