Java接口自動化之log4j日志框架
上一篇Java接口自動化系列文章:Java接口自動化之IDEA創(chuàng)建及運行maven項目,主要介紹如何用IDEA創(chuàng)建maven項目、maven項目結(jié)構(gòu)介紹及maven項目運行實戰(zhàn)。
以下主要介紹Java日志框架Log4j。
1 log4j介紹
Log4j(log for java)是java流行的日志框架,可以方便的記錄日志。
2 log4j特點
3 log4j日志級別
log日志,按照嚴重程度分為五個等級:DEBUG、INFO、WARN、ERROR和FATAL。
Log4j默認日志級別為INFO,規(guī)則是只輸出比默認日志級別高的等級,即只輸出INFO、WARN、ERROR和FATAL等級,DEBUG等級則不會輸出。
Log4j三大組成部分:
Loggers 日志等級
Appenders ?日志輸出到哪,控制臺or文件?
Layouts 日志輸出格式
1 Loggers 日志等級
log日志,按照嚴重程度分為五個等級:DEBUG、INFO、WARN、ERROR和FATAL。
Log4j默認日志級別為INFO,規(guī)則是只輸出比默認日志級別高的等級,即只輸出INFO、WARN、ERROR和FATAL等級,DEBUG等級則不會輸出。
在log4j.properties中,設置日志等級及輸出源:
#?設置日志等級及輸出源
log4j.rootLogger?=?INFO,console,file
其中,INFO為日志等級,console,file表示需要輸出到控制臺和文件中。
2?Appender 日志輸出位置
Appender 主要是用于定義日志輸出到哪里,比如控制臺、日志文件、數(shù)據(jù)庫及郵件等。上面我們設置日志輸出到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
#?設置日志等級及輸出源
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
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),其中參數(shù)Log4jTest.class中的Log4jTest表示當前Log4jTest這個類,作用是追蹤Log4jTest類產(chǎn)生的日志。
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中,日志記錄如下:

(完)

喜歡記得星標置頂,讓我們一起守護成長
