基本配置文件log4j.properties
1 log4j.rootLogger=debug, stdout, R 2 3 log4j.appender.stdout=org.apache.log4j.ConsoleAppender 4 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 5 6 # Pattern to output the caller's file name and line number. 7 log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n 8 9 log4j.appender.R=org.apache.log4j.RollingFileAppender 10 log4j.appender.R.File=example.log 11 12 log4j.appender.R.MaxFileSize=100KB 13 # Keep one backup file 14 log4j.appender.R.MaxBackupIndex=5 15 16 log4j.appender.R.layout=org.apache.log4j.PatternLayout 17 log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.rootLogger=debug, stdout, R
設置日誌輸出的等級爲debug,低於debug就不會輸出了
設置日誌輸出到兩種地方,分別叫做 stdout和 R
stdout, 輸出到控制檯
R, 以滾動的方式輸出到文件
log4j日誌輸出格式一覽:
%c 輸出日誌信息所屬的類的全名%d 輸出日誌時間點的日期或時間,默認格式爲ISO8601,也可以在其後指定格式,比如:%d{yyy-MM-dd HH:mm:ss },輸出類似:2002-10-18- 22:10:28
%f 輸出日誌信息所屬的類的類名
%l 輸出日誌事件的發生位置,即輸出日誌信息的語句處於它所在的類的第幾行
%m 輸出代碼中指定的信息,如log(message)中的message
%n 輸出一個回車換行符,Windows平臺爲“rn”,Unix平臺爲“n”
%p 輸出優先級,即DEBUG,INFO,WARN,ERROR,FATAL。如果是調用debug()輸出的,則爲DEBUG,依此類推
%r 輸出自應用啓動到輸出該日誌信息所耗費的毫秒數
%t 輸出產生該日誌事件的線程名
所以:
%5p [%t] (%F:%L) - %m%n 就表示
寬度是5的優先等級 線程名稱 (文件名:行號) - 信息 回車換行
log4j的使用
1 public class TestLog4j { 2 static Logger logger = Logger.getLogger(TestLog4j.class); 3 public static void main(String[] args) throws InterruptedException { 4 PropertyConfigurator.configure("e:\\project\\log4j\\src\\log4j.properties"); 5 for (int i = 0; i < 5000; i++) { 6 logger.trace("跟蹤信息"); 7 logger.debug("調試信息"); 8 logger.info("輸出信息"); 9 logger.warn("警告信息"); 10 logger.error("錯誤信息"); 11 logger.fatal("致命信息"); 12 } 13 } 14 }