log4j的jar包內部包含preference默認配置,使用者能夠經過log4j.xml或log4j.properties來指定本身的配置。xml比properties優先。另外注意java讀取properties文件時只是經過=號來分割鍵值對,因此#註釋不能與鍵值對定義放在同一行。java
指定配置文件的方式有:apache
1.log4j.jar包會先使用System.getProperty("log4j.xml或configuration")看是否有jvm參數,咱們能夠經過java -Dlog4j.configuration=file:/full_path/log4j.properties 來指定(file:前綴不能省)。app
2.代碼中使用PropertyConfigurator.configure(param);來指定。比較使人困惑的多是相對路徑的問題了,在IDE或jar包中能夠經過getClassLoader().getResource("log4j.properties");來得到存在於CLASSPATH中資源文件。jvm
多個jar包共用一個log4j.jar的狀況下能夠實現讓不一樣jar包使用不一樣的輸出等級,spa
如將rootLogger設爲info級別,而將本身的包設爲debug級別:debug
log4j.logger.包名=DEBUG
也能夠指定每一個jar包輸出到不一樣的文件:日誌
log4j.logger.包名1=DEBUG,jar1loggercode
log4j.appender.jar1logger=org.apache.log4j.RollingFileAppender
log4j.appender.jar1logger.layout=org.apache.log4j.PatternLayout
log4j.appender.jar1logger.layout.ConversionPattern=%d [%t]<%-5p> %c -> %m%n
log4j.appender.jar1logger.File=/var/log/mylog/jar1.log
log4j.appender.jar1logger.Append=true
log4j.appender.jar1logger.MaxFileSize=1024KB
log4j.appender.jar1logger.MaxBackupIndex=5xml
下面是最簡單的一份配置:blog
### set log levels ,stdout,D,E是本身起的名字### #設置rootLogger級別爲INFO則屏蔽debug信息,級別all<debug < info < warn < error < fatal<off log4j.rootLogger = INFO, 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 = [fyk]%d{ABSOLUTE} %p [%C{1}.%M]:%L - %m%n ### 輸出到日誌文件 ### log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = logs/all.log log4j.appender.D.Append = true ## 輸出DEBUG級別以上的日誌 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][%C{1}.%M] - [%p] %m%n ##ERROR log4j.appender.E = org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File =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][%C{1}.%M] - [%p] %m%n