修改記錄
時間 | 描述 |
---|---|
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>