學習log4j配置文件

1.      log4j: Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日誌信息輸送的目的地是控制檯、文件、GUI組件、甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日誌的輸出格式;通過定義每一條日誌信息的級別,我們能夠更加細緻地控制日誌的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼。(來自百度百科)

說明:

# Default root logger

log4j.rootLogger=all, stdout, file

定義根記錄器

此句爲將等級爲all的日誌信息輸出到stdout和file這兩個目的地,stdout和file的定義在下面的代碼,可以任意起名。

日誌等級有:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL

 

# Base platform specific logger

log4j.additivity.com.shntec.bp=false

log4j.logger.com.shntec.bp=all, stdout, file

定義非根記錄器 com.shntec.bp

Log4j.logger.com.shntec.bp=all,stdout,file

此句就是定義非根記錄器,將等級爲all的日誌信息輸出到stdoutfile這兩個目的地,

Log4j.additivity.com.shntec.bp=false 

是指定非根記錄器的日誌僅僅在appender stdout  appender file中輸出

 

log4j.additivity 是 子Logger 是否繼承 父Logger的 輸出源(appender) 的標誌位。具體說,默認情況下 子Logger 會繼承 父Logger的appender,也就是說 子Logger會在 父Logger的appender裏輸出。若是additivity設爲false,則 子Logger只會在自己的appender裏輸出,而不會在 父Logger的appender裏輸出。(轉自:關於log4j.additivity的說明)

 

個人想法:此句是沒有意義的,由於根記錄器的的輸送目的地也是 appender atdout  appender file ,而沒有這一句的情況下,非根記錄器com.shntec.bp的輸送目的地就是appender stdout appender file,所以這一句再次是多餘的!

 

mchange database pool logger

log4j.additivity.com.mchange=false

log4j.logger.com.mchange=error, stdout, file

 

# HTTP Client logger

log4j.additivity.org.apache.http=false

log4j.logger.org.apache.http=error, stdout, file

log4j.additivity.org.apache.http.wire=false

log4j.logger.org.apache.http.wire=error, stdout, file

 

以相同方式定義非根記錄com.mchange 、org.apache.http 和 org.apache.http.wire

 

# Console output appender

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss,SSS}][%p][%F:%L][%t]: %m%n

 

定義日誌輸出目的地stdout

Log4j.appender.stdout=org.apache.log4j.ConsoleAppender

指定stdout的目的地爲控制檯

其中,log4j提供的appender類型有以下幾種

org.apache.log4j.ConsoleAppender(控制檯),

org.apache.log4j.FileAppender(文件),

org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌文件

org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個 新的文件),可通過log4j.appender.R.MaxFileSize=100KB設置文件大小,還可通過 log4j.appender.R.MaxBackupIndex=1設置爲保存一個備份文件。

org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方)

 

    log4j.appender.stdout.layout=org.apache.log4j.PatternLoyout

    指定stdout中日誌信息的格式類型爲:指定的日誌格式

    其中,Log4j提供的layout有以下幾種:

org.apache.log4j.HTMLLayout(以HTML表格形式佈局),

org.apache.log4j.PatternLayout(可以靈活地指定佈局模式),

org.apache.log4j.SimpleLayout(包含日誌信息的級別和信息字符串),

org.apache.log4j.TTCCLayout(包含日誌產生的時間、線程、類別等等信息)

 

log4j.appender.stdout.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss,SSS}][%p][%F:%L][%t]: %m%n

規定日誌格式:

    Log4J採用類似C語言中的printf函數的打印格式格式化日誌信息,打印參數如下:

%m 輸出代碼中指定的消息

%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL

%r 輸出自應用啓動到輸出該log信息耗費的毫秒數

%c 輸出所屬的類目,通常就是所在類的全名

%t 輸出產生該日誌事件的線程名

%n 輸出一個回車換行符,Windows平臺爲“rn”,Unix平臺爲“n”

%d 輸出日誌時間點的日期或時間,默認格式爲ISO8601,也可以在其後指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},輸出類似:2002年10月18日 22:10:28,921

%l 輸出日誌事件的發生位置,包括類目名、發生的線程,以及在代碼中的行數。

%F:輸出日誌消息產生時所在的文件名稱
%L:輸出代碼中的行號

更多信息參看:http://blog.csdn.net/lxblg/article/details/104207

 

# File output appender

log4j.appender.file=org.apache.log4j.RollingFileAppender

log4j.appender.file.File=shntec.log

log4j.appender.file.MaxFileSize=10MB

log4j.appender.file.MaxBackupIndex=10

log4j.appender.file.layout=org.apache.log4j.PatternLayout

log4j.appender.file.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss,SSS}][%p][%F:%L][%t]: %m%n

 

定義輸送目標:file

log4j.appender.file=org.apache.log4j.RollingFileAppender

指定輸送目標類型爲:RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)

Log4j.appender.file.File=shntec.log

指定文件名字

log4j.appender.file.MaxFileSize=10MB

指定日誌文件大小

log4j.appender.file.MaxBackupIndex=10

設置保存10個備份文件

後面兩句的跟上面stdout輸送目標相同


ps附我常用的一個配置文件:

log4j.rootLogger=DEBUG, A1 ,R 
log4j.appender.A1=org.apache.log4j.ConsoleAppender 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=.\\local.log 
log4j.appender.R.MaxFileSize=100KB log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c]-[%p] %m%n
log4j.logger.org.apache.http=ERROR 


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