歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Log4j 配置文件詳解

Log4j 配置文件詳解

日期:2017/2/28 14:24:45   编辑:Linux教程

Log4j 的配置文件用來設置記錄器的級別、輸出目的地和布局,可以是 log4j.properties 或 log4j.xml。以下講解以 log4j.properties 的配置方式進行。

配置文件的基本格式

基本格式如下:

#配置根 Logger
log4j.rootLogger =[ level ], appenderName1, appenderName2,……
#配置日志信息輸出目的地 (Appender)
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
……
log4j.appender.appenderName.optionN = valueN
#配置日志信息的格式 (Layout)
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
……
log4j.appender.appenderName.layout.optionN = valueN

Level

Level 是日志輸出級別,共有5級:

名稱級別 FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7

Appender

Appender 為日志輸出目的地,Log4j 提供的 appender 有以下幾種:

  • org.apache.log4j.ConsoleAppender(控制台)
  • org.apache.log4j.FileAppender(文件)
  • org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件)
  • org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)
  • org.apache.log4j.WriterAppender(將日志信息以流格式發送到任意指定的地方)

ConsoleAppender 可配置項

項解釋 Threshold=DEBUG 指定日志消息的輸出最低層次 ImmediateFlush=true 默認值是 true,意味著所有的消息都會被立即輸出 Target=System.err 默認情況下是 System.out,指定輸出控制台

FileAppender 可配置項

項解釋 Threshold=DEBUF 指定日志消息的輸出最低層次 ImmediateFlush=true 默認值是 true,意味著所有的消息都會被立即輸出 File=mylog.txt 指定消息輸出到 mylog.txt 文件 Append=false 默認值是true,即將消息增加到指定文件中,false指將消息覆蓋指定的文件內容

RollingFileAppender 可配置項

項解釋 Threshold=DEBUG 指定日志消息的輸出最低層次。 ImmediateFlush=true 默認值是true,意味著所有的消息都會被立即輸出。 File=mylog.txt 指定消息輸出到mylog.txt文件。 Append=false 默認值是true,即將消息增加到指定文件中,false指將消息覆蓋指定的文件內容。 MaxFileSize=100KB 後綴可以是KB, MB 或者是 GB. 在日志文件到達該大小時,將會自動滾動,即將原來的內容移到mylog.log.1文件。 MaxBackupIndex=2 指定可以產生的滾動文件的最大數。

Layout

Layout 為日志輸出格式,Log4j 提供的 layout 有以下幾種:

  • org.apache.log4j.HTMLLayout(以HTML表格形式布局),
  • org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
  • org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串),
  • org.apache.log4j.TTCCLayout(包含日志產生的時間、線程、類別等等信息)

Layout 示例

log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n

符號意義 - 信息輸出時左對齊 %p 輸出日志信息優先級,即DEBUG,INFO,WARN,ERROR,FATAL %d 輸出日志時間點的日期或時間,默認格式為ISO8601,也可以在其後指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921 %r 輸出自應用啟動到輸出該log信息耗費的毫秒數 %c 輸出日志信息所屬的類,通常就是所在類的全名 %t 輸出產生該日志事件的線程名 %l 輸出日志事件的發生位置,相當於%C.%M(%F:%L)的組合,包括類目名、發生的線程,以及在代碼中的行數。舉例:Testlog4.main (TestLog4.java:10) %x 輸出和當前線程相關聯的NDC(嵌套診斷環境),尤其用到像java servlets這樣的多客戶多線程的應用中。 %% 輸出一個"%"字符 %F 輸出日志消息產生時所在的文件名稱 %L 輸出代碼中的行號 %m 輸出代碼中指定的消息,產生的日志具體信息 %n 輸出一個回車換行符,Windows平台為"\r\n",Unix平台為"\n"

修飾符

可以在%與模式字符之間加上修飾符來控制其最小寬度、最大寬度和文本的對齊方式。如:

示例表示 %20c 指定輸出category的名稱,最小的寬度是20,如果category的名稱小於20的話,默認的情況下右對齊。 %-20c 指定輸出category的名稱,最小的寬度是20,如果category的名稱小於20的話,"-"號指定左對齊。 %.30c 指定輸出category的名稱,最大的寬度是30,如果category的名稱大於30的話,就會將左邊多出的字符截掉,但小於30的話也不會有空格。 %20.30c 如果category的名稱小於20就補空格,並且右對齊,如果其名稱長於30字符,就從左邊較遠輸出的字符截掉。

Log4j配置詳解 http://www.linuxidc.com/Linux/2014-10/108401.htm

Apache Log4j 2 更多內容請看: http://logging.apache.org/log4j/2.x/

Log4j入門使用教程 http://www.linuxidc.com/Linux/2013-06/85223.htm

Log4j 日志詳細用法 http://www.linuxidc.com/Linux/2014-09/107303.htm

Hibernate配置Log4j顯示SQL參數 http://www.linuxidc.com/Linux/2013-03/81870.htm

Log4j學習筆記(1)_Log4j 基礎&配置項解析 http://www.linuxidc.com/Linux/2013-03/80586.htm

Log4j學習筆記(2)_Log4j配置示例&Spring集成Log4j http://www.linuxidc.com/Linux/2013-03/80587.htm

Log4j 的詳細介紹:請點這裡
Log4j 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved