點選上方頭像關注我,每周上午 09:00準時推送,每月不定期贈送技術書籍,小視窗回複“資源”、“測試工具包”領取測試資源。
上一篇Java接口自動化系列文章:Java接口自動化之IDEA建立及運作maven項目,主要介紹如何用IDEA建立maven項目、maven項目結構介紹及maven項目運作實戰。
以下主要介紹Java日志架構Log4j。
01
log4j簡介
1 log4j介紹
Log4j(log for java)是java流行的日志架構,可以友善的記錄日志。
2 log4j特點
①靈活的配置日志的輸出方式、優先級及輸出格式;
②友善顯示程式運作時的調試資訊。
3 log4j日志級别
log日志,按照嚴重程度分為五個等級:DEBUG、INFO、WARN、ERROR和FATAL。
Log4j預設日志級别為INFO,規則是隻輸出比預設日志級别高的等級,即隻輸出INFO、WARN、ERROR和FATAL等級,DEBUG等級則不會輸出。
02
log4j日志三大部分
Log4j三大組成部分:
- Loggers 日志等級
- Appenders 日志輸出到哪,控制台or檔案?
- Layouts 日志輸出格式
接下來根據這三大組成部分分别介紹如何配置日志。
1 Loggers 日志等級
log日志,按照嚴重程度分為五個等級:DEBUG、INFO、WARN、ERROR和FATAL。
Log4j預設日志級别為INFO,規則是隻輸出比預設日志級别高的等級,即隻輸出INFO、WARN、ERROR和FATAL等級,DEBUG等級則不會輸出。
在log4j.properties中,設定日志等級及輸出源:
# 設定日志等級及輸出源
log4j.rootLogger = INFO,console,file
其中,INFO為日志等級,console,file表示需要輸出到控制台和檔案中。
2 Appender 日志輸出位置
Appender 主要是用于定義日志輸出到哪裡,比如控制台、日志檔案、資料庫及郵件等。上面我們設定日志輸出到console,file,那麼接下來如何配置日志輸出到console及file中呢。在log4j.properties中,設定日志輸出位置。
輸出到控制台:
# 輸出到控制台
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
輸出到日志檔案
# 将日志記錄在檔案中, 每天一個備份檔案
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
# 輸出日志到具體檔案中
log4j.appender.file.File = target/logs/auto_api.log
log4j.appender.file.Append = true
03
log4j日志實戰
①建立maven項目(上篇介紹過,這裡不再重複),在resources資源目錄下建立檔案log4j.properties。
②log4j.properties内容如下:
# 設定日志等級及輸出源
log4j.rootLogger = INFO,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.layout.ConversionPattern= %p %d{yyyy-MM-dd HH:mm:ss} --> [%t] %l: %m %x %n
# 輸出到檔案
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File = target/logs/auto_api.log
log4j.appender.file.Append = true
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = %p %d{yyyy-MM-dd HH:mm:ss} --> [%t] %l: %m %x %n
③建立Log4jTest類,編寫代碼。
import org.apache.log4j.Logger;
public class Log4jTest {
public static Logger logger = Logger.getLogger(Log4jTest.class);
public static void main(String[] args) {
test();
}
public static void test(){
logger.debug("這是debug級别");
logger.info("這是info級别");
logger.warn("這是warn級别");
logger.error("這是error級别");
}
}
代碼說明:
- Logger.getLogger(Log4jTest.class),其中參數Log4jTest.class中的Log4jTest表示目前Log4jTest這個類,作用是追蹤Log4jTest類産生的日志。
- logger.debug,logger.info,logger.warn,logger.error表示要輸出的日志級别,預設級别info。
④運作代碼,檢視實際日志運作效果。
控制台日志輸出:
INFO 2020-12-31 16:17:04 --> [main] com.vivi.Log4jTest.test(Log4jTest.java:15): 這是info級别
WARN 2020-12-31 16:17:04 --> [main] com.vivi.Log4jTest.test(Log4jTest.java:16): 這是warn級别
ERROR 2020-12-31 16:17:04 --> [main] com.vivi.Log4jTest.test(Log4jTest.java:17): 這是error級别
之前配置檔案log4j.properties裡,将日志輸入到target/logs下的auto_api.log中,日志記錄如下:
(完)
我是CoCo,計算機科學與技術專業,深漂大廠網際網路民工(女),坐标深圳。5年工作經驗,3年持續輸出技術文。ITester軟體測試小棧(ID:ITestingA)号主,Boss直聘好文社群簽約作者,騰訊雲社群優質創作者。專注于軟體測試技術和寶藏幹貨分享,每周準時更新原創技術文章,每月不定期贈送技術書籍,願我們在更高處相逢。喜歡記得星标⭐我,每周及時獲得最新推送,第三方轉載請注明出處。
喜歡記得星标置頂,讓我們一起守護成長