log4j.xml簡介

前言
    上篇我們剛介紹了log4j.properties,但是log4j除了提供了properties的配置文件還有xml配置文件,但是目前大家還是使用log4j.xml的較多,因爲它可以支持log4j.properties所不能支持的一些特性。

正題
    1. log4j.properties VS log4j.xml

    1) Log4j在執行的時候一般是先找log4j.xml然後再找log4j.properties. 但是配置文件需要放置到src文件夾下。

    2) properties文件比xml文件更簡便,因爲xml還需要log4j.dtd還有dom4j.jar(高版本中會有,本次我的測試使用的是1.2.16version)。

    3) properties文件不支持一些高級的配置,如Filters,custom ErrorHandlers和一些特殊類型的appenders(如AsyncAppender)。

    4) properties文件中只能定義日誌的最低級別(如果級別設定的是INFO,那麼就會記錄FATAL ,ERROR ,WARN ,INFO的日誌),但是由於xml支持Filter,所以它可以指定級別(如果指定了最低級別INFO,最高級別WARN,那麼就只會記錄這兩個級別的日誌)。

    2.log4j.xml配置

    上篇我們解釋了log4j.properties的配置,那我們這裏將上篇中的log4j.properties的配置轉換成log4j.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="ERRORFILE" class="org.apache.log4j.ConsoleAppender">
        <param name="Threshold" value="ERROR" />
        <param name="File" value="F:/error.log" />
        <param name="MaxFileSize" value="2000MB"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
        </layout>
    </appender>

    <appender name="WELCOMEFILE" class="org.apache.log4j.RollingFileAppender">
        <param name="Threshold" value="INFO" />
        <param name="File" value="F:/welcome.log" />
        <!-- 日誌文件允許的最大字節數(默認是10M) -->
        <param name="MaxFileSize" value="2000MB"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
        </layout>
        <!--過濾器設置輸出的級別,只能記錄INFO和WARN級別的日誌-->  
        <filter class="org.apache.log4j.varia.LevelRangeFilter">  
            <param name="levelMin" value="INFO" />  
            <param name="levelMax" value="WARN" />  
            <param name="AcceptOnMatch" value="true" />  
        </filter>  
    </appender>

    <logger name="org.apache.commons.httpclient">
        <level value="ERROR" />
    </logger>

    <!-- 這裏雖然定義了DEBUG級別,但是由於WELCOMEFILE定義的是INFO級別,所以在WELCOMEFILE中我們能看到的也都是INFO級別的日誌 -->
    <logger name="com.dan.test">
        <level value="DEBUG" />
        <appender-ref ref="WELCOMEFILE" />
    </logger>
    
    <root>
        <level value="ERROR" />
        <appender-ref ref="ERRORFILE" />
        <appender-ref ref="WELCOMEFILE" />
    </root>

</log4j:configuration>



小結:
    log4j.xml相比log4j.properties配置更加靈活,也可以是我們的工作更加的便利。
發佈了244 篇原創文章 · 獲贊 8 · 訪問量 42萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章