log4j配置文件詳解


在開發中經常會碰到日志,網上關於日志的框架也很多,像log4j、self4j、common-logging等,下面對log4j進行介紹。

log4j是java開發的日志框架,具有低侵入的特點,其重點使用的部分是log4j的配置文件,有兩格式的配置文件,一種XML的,一種properties的,在開發中常用properties格式,對properties格式的配置文件做詳細描述,log4j.properties

### set log levels ###  
log4j.rootLogger = debug,stdout,D,E  

log4j.appender.stdout = org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.Target = System.out  
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n  

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender  
log4j.appender.D.File = F://logs/log.log  
log4j.appender.D.Append = true  
log4j.appender.D.Threshold = DEBUG   
log4j.appender.D.layout = org.apache.log4j.PatternLayout  
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n  

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender  
log4j.appender.E.File =F://logs/error.log   
log4j.appender.E.Append = true  
log4j.appender.E.Threshold = ERROR   
log4j.appender.E.layout = org.apache.log4j.PatternLayout  
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

上面是properties格式的配置文件

log4j.rootLogger ,此處也可以使用log4j.rootCategory,rootLogger是rootCategory的子類,現在已經不建議使用rootCatetory了。

指定日志的輸出級別和輸出目的地,如,debug,sdtout,file

debug  指定日志的輸出界別,log4j一共定義了9中日志界別,由高到低為:off、fatal、error、warn、info、debug、all 推薦使用其中的四種級別:error、warn、info、debug,如果使用了info,則error、warn、info級別都會輸出,如果使用warn則error、warn級別的日志都會輸出;sdtout、file指定的是日志輸出的位置的一個名稱

log4j.appender.sdtout=org.apache.log4j.ConsoleAppender  指定sdtout的輸出使用的是ConsoleAppender類,即輸出到控制台

log4j.appender.stdout.Target = System.out  使用System.out 進行輸出

log4j.appender.stdout.layout = org.apache.log4j.PatternLayout  輸出的布局

log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n   輸出的日志格式

 

默認情況下配置log4j.rootLogger對整個項目其作用,如果想對某個包起作用可以配置如下

log4j.logger.com.cn.mapper=debug  com.cn.mapper是包名,此包下的所有類的日志都會輸出,輸出的級別為debug,即error、warn、info、debug級別的日志都會輸出。

綜上所述,一個log4j的配置文件包括以下及部分

log4j.rootLogger=[info|debug],sdtout,mail,file,appenderName    日志文件的級別,輸出目的地名稱

log4j.appender.appenderName=org.apache.log4j.DailyRollingFileAppender   appenderName需要換成相應的名稱  org.apache.log4j.DailyRollingFileAppender 指定使用的類

      這里的類有以下幾種:org.apache.log4j.ConsoleAppender(控制台)、org.apache.log4j.FileAppender(文件)、org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件) 、org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件

    ConsoleAppender  是輸出到控制台 ,有以下可選項Threshold(指定日志輸出的最低級別)、Target(輸出控制台)

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

下面是一個輸出到控制台的log4j的配置文件,

### set log levels ###  
log4j.rootLogger = debug,stdout

log4j.appender.stdout = org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.Target = System.out  
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n  


了解了log4j的配置文件之后,便可以按照需要配置日志的輸出目的地、輸出級別等。

有不當之處,歡迎指正

謝謝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM