1. 程式人生 > 其它 >使用log4j如何列印輸出到日誌檔案

使用log4j如何列印輸出到日誌檔案

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
找到位置看是不是輸出日誌檔案了。