日誌log4j、log4j2
log4j屬性檔案
##define an appender named console 日誌附加器,設定輸出位置
log4j.appender.console=org.apache.log4j.ConsoleAppender
#The Target value is System.out or System.err
log4j.appender.console.Target=System.out
#set the layout type of the apperder
log4j.appender.console.layout=org.apache.log4j.PatternLayout
#set the layout format pattern
log4j.appender.console.layout.ConversionPattern=[%-5p][%d{yyyy-MM-dd HH:mm:ss}] %c %L %m%n
##define a logger 根日誌
#log4j.rootLogger=debug,console,file,rollfile
log4j.rootLogger=debug,console
日誌級別
fatal,error,warn,info,debug,trace
log4j:
匯入jar包和properties檔案,
Logger logger=Logger.getLogger(MyTest.class);
logger.fatal("fatal msg");
logger.error("error msg");
logger.warn("warn msg");
logger.info("info msg");
logger.debug("debug msg");
logger.trace("trace msg");
log4j2
匯入jar包和xml配置檔案
log4j 屬性檔案結構分析
為什麼log4j不用呼叫就可以輸出日誌,而log4j2不行?
需要配置log4j2的status屬性
status屬性跟level什麼關係?
Configuration.status是log4j2管理log4j2內部輸出資訊,與人為設定的日誌不同;level是管理人為指定的日誌的級別
Log4j2配置檔案
<?xmlversion="1.0"encoding="UTF-8"?>
<configurationstatus="DEBUG">
<appenders>
<Consolename="myConsole"target="SYSTEM_OUT">
<PatternLayoutpattern="[%-5p][%d{yyyy-MM-ddHH:mm:ss}][%c%L]%m%n"/>
</Console>
</appenders>
<loggers>
<!--
<loggername="全限定類名或介面名"level="info">
<appender-refref="myConsole"/>
</logger>
-->
<rootlevel="trace">
<appender-refref="myConsole"/>
<!--<appender-refref="myLogFile"/>
<appender-refref="myRollingFile"/>-->
</root>
</loggers>
</configuration>