Java接口自動(dòng)化之log4j日志框架
上一篇Java接口自動(dòng)化系列文章:Java接口自動(dòng)化之IDEA創(chuàng)建及運(yùn)行maven項(xiàng)目,主要介紹如何用IDEA創(chuàng)建maven項(xiàng)目、maven項(xiàng)目結(jié)構(gòu)介紹及maven項(xiàng)目運(yùn)行實(shí)戰(zhàn)。
以下主要介紹Java日志框架Log4j。
1 log4j介紹
Log4j(log for java)是java流行的日志框架,可以方便的記錄日志。
2 log4j特點(diǎn)
3 log4j日志級(jí)別
log日志,按照嚴(yán)重程度分為五個(gè)等級(jí):DEBUG、INFO、WARN、ERROR和FATAL。
Log4j默認(rèn)日志級(jí)別為INFO,規(guī)則是只輸出比默認(rèn)日志級(jí)別高的等級(jí),即只輸出INFO、WARN、ERROR和FATAL等級(jí),DEBUG等級(jí)則不會(huì)輸出。
Log4j三大組成部分:
Loggers 日志等級(jí)
Appenders ?日志輸出到哪,控制臺(tái)or文件?
Layouts 日志輸出格式
1 Loggers 日志等級(jí)
log日志,按照嚴(yán)重程度分為五個(gè)等級(jí):DEBUG、INFO、WARN、ERROR和FATAL。
Log4j默認(rèn)日志級(jí)別為INFO,規(guī)則是只輸出比默認(rèn)日志級(jí)別高的等級(jí),即只輸出INFO、WARN、ERROR和FATAL等級(jí),DEBUG等級(jí)則不會(huì)輸出。
在log4j.properties中,設(shè)置日志等級(jí)及輸出源:
#?設(shè)置日志等級(jí)及輸出源
log4j.rootLogger?=?INFO,console,file
其中,INFO為日志等級(jí),console,file表示需要輸出到控制臺(tái)和文件中。
2?Appender 日志輸出位置
Appender 主要是用于定義日志輸出到哪里,比如控制臺(tái)、日志文件、數(shù)據(jù)庫(kù)及郵件等。上面我們?cè)O(shè)置日志輸出到console,file,那么接下來(lái)如何配置日志輸出到console及file中呢。在log4j.properties中,設(shè)置日志輸出位置。
輸出到控制臺(tái):
#?輸出到控制臺(tái)
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Target=System.out
#?將日志記錄在文件中,?每天一個(gè)備份文件
log4j.appender.file?=?org.apache.log4j.DailyRollingFileAppender
#?輸出日志到具體文件中
log4j.appender.file.File?=?target/logs/auto_api.log
log4j.appender.file.Append?=?true
#?設(shè)置日志等級(jí)及輸出源
log4j.rootLogger?=?INFO,console,file
#?輸出到控制臺(tái)
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級(jí)別");
????????logger.info("這是info級(jí)別");
????????logger.warn("這是warn級(jí)別");
????????logger.error("這是error級(jí)別");
????????
????}
}
代碼說(shuō)明:
Logger.getLogger(Log4jTest.class),其中參數(shù)Log4jTest.class中的Log4jTest表示當(dāng)前Log4jTest這個(gè)類,作用是追蹤Log4jTest類產(chǎn)生的日志。
logger.debug,logger.info,logger.warn,logger.error表示要輸出的日志級(jí)別,默認(rèn)級(jí)別info。
④運(yùn)行代碼,查看實(shí)際日志運(yùn)行效果。
控制臺(tái)日志輸出:
INFO?2020-12-31?16:17:04?-->?[main]?com.vivi.Log4jTest.test(Log4jTest.java:15):?這是info級(jí)別??
WARN?2020-12-31?16:17:04?-->?[main]?com.vivi.Log4jTest.test(Log4jTest.java:16):?這是warn級(jí)別??
ERROR?2020-12-31?16:17:04?-->?[main]?com.vivi.Log4jTest.test(Log4jTest.java:17):?這是error級(jí)別
之前配置文件log4j.properties里,將日志輸入到target/logs下的auto_api.log中,日志記錄如下:

(完)

喜歡記得星標(biāo)置頂,讓我們一起守護(hù)成長(zhǎng)
