從零開始···druid+log4j基本配置

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

發佈了37 篇原創文章 · 獲贊 2 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章