Log4j日誌的基礎配置及使用

log4j是一個用Java編寫的可靠,快速和靈活的日誌框架(API),它在Apache軟件許可下發布。 Log4j已經被移植到了C,C++,C#,Perl,Python和Ruby等語言中。
Log4j是高度可配置的,並可通過在運行時的外部文件配置。它根據記錄的優先級別,並提供機制,以指示記錄信息到許多的目的地,諸如:數據庫,文件,控制檯,UNIX系統日誌等。

一,到Log4j官網下jar包,並把jar包放在External Libraries下目錄下

https://logging.apache.org/log4j/2.x/download.html

二,配置log4j.properties

在source文件夾下面新建log4j.properties文件,這個不用記,保存一遍就可以一直用啦。
輸出日誌級別從高到低:error > warn > info > debug

###根logger設置:相當於全局配置,如果底下的自定義配置和這裏的全局配置都有日誌輸出級別的配置,優先輸出級別更高的###
log4j.rootLogger = INFO,console,file

### 輸出信息到控制檯配置:第一個表示的是日誌的附加器。第二個是輸出的對象,這裏有system.out,還有比如system.err之類的。第三個表示展示的方式。第四個是輸出信息到控制檯的級別。最後一個是日誌展示格式。
最後一行的%p表示日誌輸出級別,%l表示輸出日誌的位置,包括類名,發生的線程等,%m表示message,%n表示換行,%d表示時間###
log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.Target = System.out
log4j.appender.console.layout = org.apache.log4j.PatternLayout
log4j.appender.console.Threshold = INFO
log4j.appender.console.layout.ConversionPattern = [%p] %d{yyyy-MM-dd HH:mm:ss} method: %l----%m%n

###保存日誌文件配置:第二行是日誌保存的配置,第三行表示是否追加(新日誌是否追加到後面等),第四行表示設置的日誌級別,這裏是warn,故在e盤裏,保存的日誌是warn級別及以上的###
log4j.appender.file = org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File = E:/log/web.log
log4j.appender.file.Append = true
log4j.appender.file.Threshold = warn 
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} method: %l - [ %p ]----%m%n

我們可以寫個文件測試一下

import org.apache.log4j.Logger;

public class Test {
    // 傳入當前類的名稱
    private static Logger logger = Logger.getLogger("Test.class");

    public static void main(String[] args) {
        logger.info("這是info信息");
        logger.error("這是error信息");
        logger.warn("這是warn信息");
        logger.debug("這是debug信息");

    }
}

這個在控制檯輸出的就是INFO級別的日誌,因爲我們在上面配置了,輸出結果如下:

[INFO] 2019-07-01 00:01:30 method: com.java.lesson10.test.log4j.Test.main(Test.java:10)----這是info信息
[ERROR] 2019-07-01 00:01:30 method: com.java.lesson10.test.log4j.Test.main(Test.java:11)----這是error信息
[WARN] 2019-07-01 00:01:30 method: com.java.lesson10.test.log4j.Test.main(Test.java:12)----這是warn信息

注意:
當局部變量和全局變量都設置的日誌輸出級別,我們就需要對比局部變量和全局變量的輸出等級,哪個輸出級別高就輸出哪個。比如我在局部變量設置的debug,在全局變量設置了info,info>debug,輸出的時候就會輸出info級別及以上的日誌。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章