Log4j日誌框架使用
阿新 • • 發佈:2021-02-05
Log4j日誌框架使用
Log4j的配置檔案
- 想要使用Log4j,需要在專案目錄下建立一個
lib
資料夾,在資料夾中匯入Log4j
的jar包
- 然後,在
src
目錄下建立log4j.properties
配置檔案,需要將配置檔案進行配置然後才能正常使用,一般Log4j配置檔案內容如下:
log4j.rootLogger=error,stdout ## error 代表日誌輸出的級別,error及以上級別才輸出 logfile表示將日誌寫入到檔案,這裡可以新增多個引數,新增stdout在控制檯輸出,用逗號隔開 log4j.appender.stdout=org.apache.log4j.ConsoleAppender ## 上面的程式碼表示日誌輸出到控制檯 log4j.appender.stdout.Target=System.err ## 上面的程式碼配置輸出的類 log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout ##上面的程式碼表示輸出時的格式的設定 ## stdout 這個名稱可以修改,但是要保證所有的地方保持一致,這裡的配置表示使用控制檯輸出日誌的配置 log4j.appender.logfile=org.apache.log4j.FileAppender ## 上面的程式碼表示日誌輸出的類 log4j.appender.logfile.File=d:/msb.log ## 上面一行程式碼是日誌檔案地址的配置 log4j.appender.logfile.layout=org.apache.log4j.PatternLayout ## 上面的程式碼表示輸出時格式的類 log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %F %p %m%n ## 上面一行程式碼是日誌輸出格式的配置 ## logfile 這個名稱可以修改,但是要保證所有地方保持一致,這裡的配置表示寫入到日誌檔案的配置
Log4j日誌的級別
- FATAL:指出現非常嚴重的錯誤事件,這些錯誤可能導致應用程式異常中止
- ERROR:指雖有錯誤,但仍允許應用程式繼續執行
- WARN:指執行環境潛藏著危害
- INFO:指報告資訊,這些資訊在粗粒度級別上突出顯示應用程式的程序
- DEBUG:指細粒度資訊事件,對於應用程式的除錯是最有用的
Log4j的日誌格式化字元含義
- %p:輸出日誌資訊的優先順序,即DEBUG,INFO,WARN,ERROR,FATAL。
- %d:輸出日誌時間點的日期或時間,預設格式為ISO8601,也可以在其後指定格式,如:%d{yyyy/MM/dd HH:mm:ss,SSS}。
- %r:輸出自應用程式啟動到輸出該log資訊耗費的毫秒數。
- %t:輸出產生該日誌事件的執行緒名。
- %l:輸出日誌事件的發生位置,相當於%c.%M(%F:%L)的組合,包括類全名、方法、檔名以及在程式碼中的行數
- %c:輸出日誌資訊所屬的類目,通常就是所在類的全名。
- %M:輸出產生日誌資訊的方法名。
- %F:輸出日誌訊息產生時所在的檔名稱。
- %L::輸出程式碼中的行號。
- %m::輸出程式碼中指定的具體日誌資訊。
- %n:輸出一個回車換行符,Windows平臺為"rn",Unix平臺為"n"。
- %x:輸出和當前執行緒相關聯的NDC(巢狀診斷環境),尤其用到像java servlets這樣的多客戶多執行緒的應用中。
- %%:輸出一個"%"字元
Java程式碼中使用Log4j
package com.shanlei;
import org.apache.log4j.Logger;
/**
* @author: shanlei
* @version: 1.0
*/
public class TestLog4j {
// 這是main方法,實現程式主要邏輯
public static void main(String[] args) {
Logger logger = Logger.getLogger(TestLog4j.class);
// 建立logger物件,注意導包的時候,需要導org.apache.log4j.Logger這個包
logger.fatal("這是fatal級別:嚴重錯誤警告");
logger.error("這是error級別:錯誤警告");
logger.warn("這是warn級別:提醒警告");
logger.info("這是inroad級別:資訊");
logger.debug("這是debug級別:除錯級別");
}
}