1. 程式人生 > >【自動化測試】log4j框架入門

【自動化測試】log4j框架入門

1.什麼是log4j

log4j是一個日誌框架,配置簡單,功能強大,在專案中用它來記錄日誌很方便。 對於測試人員來講,使用log4j可以更好的跟蹤專案中的一些互動和問題。 下載地址:https://logging.apache.org/log4j/2.x/download.html 在其中下載下來log4j-1.2.17.jar,log4j.properties。 複製jar包到專案類路徑,再配置build path新增專案依賴。

2.log4j.properties詳解

###根logger設定###
log4j.rootLogger = debug,console,file

### 輸出資訊到控制檯###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.Threshold = DEBUG 
log4j.appender.console.layout.ConversionPattern = [%p] %d{yyyy-MM-dd HH:mm:ss} method: %l----%m%n

###輸出INFO 級別以上的日誌檔案設定###
###每天產生一個日誌檔案###
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
###將日誌輸出到指定位置,下面輸出到的是E盤下的log資料夾下,儲存為web.log###
log4j.appender.file.File = E:/log/web.log
log4j.appender.file.Append = true
log4j.appender.file.Threshold = warn 
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} method: %l - [ %p ]----%m%n

2.1 其中關於根logger:

  • 根logger主要定義log4j支援的日誌級別及輸出目的地。
  • log4j.rootLogger = [level],appenderName,appenderName,…
  • 這其中,level表示是日誌記錄的優先順序,分為OFF、FATAL、ERROR、WARN、INFO、DEBUG等。日誌輸出的級別以根logger的級別為準,大於此級別的日誌才會被顯示在控制檯/記錄再日誌檔案
  • 建議使用ERROR、WARN、INFO、DEBUG這四個,級別從高到低。

2.2 關於Appender(附加器):

  • 可以一次性配置多個Appender
  • Appender定義日誌資訊輸出在什麼位置
  • 在這裡插入圖片描述

2.3 其中的常用引數:

  • %m 輸出程式碼中制定的日誌內容
  • %p 輸出優先順序,即DEBUG,INFO,WARN,ERROR,FATAL
  • %c 輸出所屬的類目,通常是所在類的全名
  • %n 輸出一個回車換行符,windows平臺為“/r/n”,unix平臺為“/n”
  • %d 輸出日誌時間點的日期或事件,預設格式為ISO8601,u而可以在其後制定格式,比如: %d{yyyy-MM-dd HH:mm:ss},輸出的資料格式如下:2018-11-3 14:55:30
  • %l 輸出日誌事件的發生位置,包括類名、發生的執行緒,以及在程式碼中的行數。eg:com.test.Tester.main(Tester.java:8)

3.如何使用

寫一個測試類來測試一下: //Logger.getLogger(Tester.class),根據log4j.properties檔案的配置去建立一個Tester類的日誌物件 private static Logger logger=Logger.getLogger(Tester.class);

public static void main(String[] args) {
	//logger.error(Object message,Throwable t);
	logger.error("這是error資訊");
	logger.warn("這是warn資訊");
	logger.info("這是info資訊");
	logger.debug("這是debug資訊");
}

4.可能會遇到的問題

如果eclipse的編碼格式設定有問題,在開啟log4j.properties檔案時中午可能會出現亂碼問題,此時根據圖片步驟進行設定: 在這裡插入圖片描述 點選ok之後,將之前開啟的log4j.properties關閉後重新開啟就顯示正常啦。