在配置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確實是一個比較強大的工具,可以深入瞭解學習一下。