在配置mybatis时用到了druid这个数据连接池,后来通过了解,它还提供了其它的一些功能,其中就包括日志的配置。
druid+log4j的基本配置如下:
1.首先是导入依赖包:
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
druid的依赖包在配置mybatis时已经导入了,就不再重复了。
2.druid配置
在mybatis的配置时,在配置文件中有druid的基本配置
<!--数据库连接-->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize"><value>1</value></property>
<property name="maxActive"><value>5</value></property>
<property name="minIdle"><value>1</value></property>
<!-- 配置获取连接等待超时的时间 -->
<property name="maxWait"><value>60000</value></property>
<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
<property name="timeBetweenEvictionRunsMillis"><value>60000</value></property>
<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
<property name="minEvictableIdleTimeMillis"><value>300000</value></property>
<!-- 开启Druid的监控统计功能 -->
<!-- 注意如果要用log4j一定要加上log4j -->
<property name="filters" value="stat,log4j" />
<!--日志配置 -->
<property name="proxyFilters">
<list>
<ref bean="log-filter"/>
</list>
</property>
</bean>
最下面那个”开启Druid的监控统计功能”注释下的属性就是这次配置日志需要加的内容,作用就是像注释写的开启druid的监控功能。
还要添加上”log-filter”这个bean
<!--日志配置 -->
<bean id="log-filter" class="com.alibaba.druid.filter.logging.Log4jFilter">
<property name="statementLogEnabled" value="true" />
</bean>
以上是mybatis配置文件中需要添加的关于开启druid开启监控的内容
3.web.xml配置
首先是log4j的引入
<!-- 初始化参数,引入log4j配置-->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.xml</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
其中第一个是配置log4j的配置文件,第二个是扫描时间。
然后是过滤器和监听器的配置
<!-- 开启德鲁伊stat过滤,WebStatFilter用于采集web-jdbc关联监控的数据,注意放在其它的过滤器以及dispatcher前面-->
<filter>
<filter-name>DruidWebStatFilter</filter-name>
<filter-class>
com.alibaba.druid.support.http.WebStatFilter
</filter-class>
<init-param>
<param-name>exclusions</param-name>
<param-value>
/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>DruidWebStatFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- log4j监听器 -->
<listener>
<listener-class>
org.springframework.web.util.Log4jConfigListener
</listener-class>
</listener>
这是web.xml中需要添加的内容,接下来是log4j.xml的配置
4.log4j配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%d{yyyy/MM/dd hh:mm:ss}] %5p %c{2}: %m%n"/>
</layout>
</appender>
<appender name="rollingFile" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="logs/server.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="[%d{MMdd HH:mm:ss SSS\} %-5p] %c{3\} - %m%n"/>
</layout>
</appender>
<!-- druid数据源配置打印日志 start-->
<logger name="druid.sql">
<level value="DEBUG"/>
</logger>
<logger name="druid.sql.DataSource">
<level value="DEBUG"/>
</logger>
<logger name="druid.sql.Connection">
<level value="DEBUG"/>
</logger>
<logger name="druid.sql.Statement">
<level value="DEBUG"/>
</logger>
<logger name="druid.sql.ResultSet">
<level value="DEBUG"/>
</logger>
<!-- end -->
<root>
<level value="INFO"/>
<appender-ref ref="console"/>
</root>
</log4j:configuration>
配置完成后就可以测试一下:
总结:
虽然在百度查了好久之后配置成功了,但其实也仅只是成功了。其中的许多的配置信息不了解,如何控制日志的输出的内容也还需要去了解学习。不过druid确实是一个比较强大的工具,可以深入了解学习一下。