【日誌系統】SLF4j&Log4j

修改記錄

時間 描述
2017-08-11 建檔

正文

Maven依賴

  slf4j-log4j作爲適配器,會自動添加slfj-api和log4j的JAR包依賴。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.21</version>
</dependency>

XML配置解析

  注:以”-“開頭的是XML節點,@param標註了節點的屬性。

<!-- 
-appender:輸出方式
    @param name 唯一標識字符串
    @param class 日誌輸出類。不同的類代表不同的輸出方式,共分五種:
        ConsoleAppender:控制檯,org.apache.log4j.ConsoleAppender
        FileAppender:文件,org.apache.log4j.FileAppender
        DailyRollingFileAppender:每天產生一個文件,org.apache.log4j.DailyRollingFileAppender
        RollingFileAppender:超出大小產生新文件,org.apache.log4j.RollingFileAppender
        WriterAppender:以流格式發送至,org.apache.log4j.WriterAppender
    -layout:輸出格式
        @param class 日誌格式類
            org.apache.log4j.EnhancedPatternLayout
            org.apache.log4j.HTMLLayout
            org.apache.log4j.PatternLayout
            org.apache.log4j.SimpleLayout
            org.apache.log4j.TTCCLayout
        -param:格式類屬性
            @param name 屬性名稱
            @param value 屬性值
                %d(Datetime):輸出日期和時間的格式,默認格式是ISO8061。也可在後面指定格式,如%d{yyyy-MM-dd HH:mm:ss SSS}
                %t(Thread):輸出產生該日誌事件的線程名
                %c(Class):輸出日誌所在的類,一般爲類名。可在後面指定輸出類名的深度,如org.springframework.http.HttpEntity,%c{2}表示輸出http.HttpEntity
                %l(Location):輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數
                %L(Line):輸出日誌在代碼中的行數
                %m(Message):輸出日誌信息
                %n:輸出換行符
    -filter:限制輸出的日誌級別
        @param class 限制類
            org.apache.log4j.varia.DenyAllFilter:拒絕所有等級的日誌輸出
            org.apache.log4j.varia.LevelMatchFilter:指定具體等級的日誌輸出
            org.apache.log4j.varia.LevelRangeFilter:指定範圍等級的日誌輸出
            org.apache.log4j.varia.StringMatchFilter:指定帶有匹配字符串的日誌輸出
        -param:限制類屬性
            @param name 屬性名稱
                LevelMin:輸出日誌的最低等級
                LevelMax:輸出日誌的最高等級
            @param value 屬性值
                日誌的級別分五種,但log4j只建議使用四種,優先級由高到低分別是ERROR、WARN、INFO、DEBUG。
                ERROR:產生的錯誤不影響系統運行
                WARN:潛在錯誤
                INFO:消息在粗粒度級別上突出強調應用程序的運行過程
                DEBUG:細粒度信息事件對調試應用程序是十分有幫助的
-logger:指定需要輸出日誌的程序
    @param name:程序所在的路徑
    @param additivity:是否允許信息流反饋給root。如果爲true,那麼日誌信息會在logger打印一邊,然後反饋給root再打印一遍
    -level:指定輸出的日誌最低級別
        @param value 輸出日誌的最低級別
    -appender-ref:指定輸出方式。通過appender的name屬性指定
        @param ref appender的name屬性
-category[棄用,由logger代替]:指定需要輸出日誌的程序
    @param name 程序所在的路徑
    @param priority 指定輸出的日誌最低級別
    -appender-ref:指定輸出方式。通過appender的name屬性指定
        @param ref appender的name屬性
-root:蒐集下面反饋上來的信息流並輸出到指定的地方
    -priority:指定輸出日誌的最低級別
        @param value 輸出日誌的最低級別
    -appender-ref:指定輸出方式
        @param ref appender的name屬性
 -->

XML配置實例

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="consoleLog" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss SSS}[%t] %C{1}[%L] - %m%n"/>
        </layout>
        <filter class="org.apache.log4j.varia.LevelRangeFilter">  
            <param name="LevelMin" value="DEBUG" />
            <param name="LevelMax" value="ERROR" />
        </filter>
    </appender>

    <logger name="chngzhen.core" additivity="false">
        <level value="DEBUG"></level>
        <appender-ref ref="consoleLog"></appender-ref>
    </logger>

    <root>
        <priority value="debug"/>
        <appender-ref ref="consoleLog"/>
    </root>
</log4j:configuration>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章