使用log4j如何列印輸出到日誌檔案
阿新 • • 發佈:2021-07-17
maven工程web專案使用log4j如何列印輸出日誌
匯入log4j相關的maven座標
<!-- log4j日誌相關座標 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.21</version> </dependency> <!-- 這裡注意:如果是springBoot專案,不必再引入下邊這個jar了, 因為spring-boot-starter本身就已經引入這個jar了。以免造成jar包衝突 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.21</version> </dependency>
2.編寫log4j配置檔案:log4j.properties
#設定優先級別、以及輸出源 stdout輸出到控制檯,D,F,E儲存到檔案 log4j.rootLogger= DEBUG,stdout,D,F,E # 把日誌資訊輸出到控制檯 log4j.appender.stdout = org.apache.log4j.ConsoleAppender #新增到控制檯 log4j.appender.stdout.Target = System.out #方式為輸出 log4j.appender.stdout.Threshold = DEBUG #優先順序為debug log4j.appender.stdout.layout= org.apache.log4j.PatternLayout #資訊佈局方式為自定義 log4j.appender.stdout.layout.ConversionPattern = %d - %m %5p (%c:%L) %n #自定義佈局方式 # 把日誌資訊輸出到檔案debug.log log4j.appender.D = org.apache.log4j.DailyRollingFileAppender log4j.appender.D.File = ../logs/**專案名**/debug.log log4j.appender.D.Append = true log4j.appender.D.Threshold = DEBUG log4j.appender.D.layout = org.apache.log4j.PatternLayout log4j.appender.D.layout.ConversionPattern = %d - %m %5p (%c:%L) %n # 把日誌資訊輸出到檔案info.log log4j.appender.F = org.apache.log4j.DailyRollingFileAppender log4j.appender.F.File = ../logs/**專案名**/info.log log4j.appender.F.Append = true log4j.appender.F.Threshold = INFO log4j.appender.F.layout = org.apache.log4j.PatternLayout log4j.appender.F.layout.ConversionPattern = %d - %m (%c:%L)%n # 把日誌資訊輸出到檔案error.log log4j.appender.E = org.apache.log4j.DailyRollingFileAppender log4j.appender.E.File =../logs/**專案名**/error.log log4j.appender.E.Append = true log4j.appender.E.Threshold = ERROR log4j.appender.E.layout = org.apache.log4j.PatternLayout log4j.appender.E.layout.ConversionPattern =%d - %m (%c\:%L) %n #ibatis logger config log4j.logger.com.ibatis=info log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug log4j.logger.com.ibatis.common.jdbc.ScriptRunner=info log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=info log4j.logger.java.sql.Connection=info log4j.logger.java.sql.Statement=info log4j.logger.java.sql.PreparedStatement=info
說明:01.日誌檔案的輸出路徑可以自定義。
02.log4j.properties是log4j預設載入的檔名,一般不需要修改。
03.日誌輸出優先順序:從高到低依次為error,warn,info,debug,低級別的可以輸出高級別的日誌,如debug可以輸出任何優先順序的日誌,但是info只能輸出info,warn,error級別的日誌。
4.stdout,D,F,E這兩個有點類似於變數名,可以自定義名稱,可以用這兩個東西進行控制檯或者檔案的輸出。
3.現場測試
編寫測試類
@SpringBootTest class ApplicationTests { Logger log = Logger.getLogger(ApplicationTests.class); @Test public void testOne() { // 記錄debug級別的資訊 log.debug(">>This is debug message"); // 記錄info級別的資訊 log.info(">>This is info message"); // 記錄error級別的資訊 log.error(">>This is error message"); } }執行結果
注意看日誌檔案的輸出路徑,看配置檔案配置的路徑:如 ../logs/**專案名**/debug.log 找到位置看是不是輸出日誌檔案了。