1. 程式人生 > >log4j日誌輸出使用_1

log4j日誌輸出使用_1

詳細 per lsm sdc org gbm rpm veh mil

轉自https://www.cnblogs.com/sky230/p/5759831.html

Log4j是幫助開發人員進行日誌輸出管理的API類庫。它最重要的特點就可以配置文件靈活的設置日誌信息的優先級、日誌信息的輸出目的地以及日誌信息的輸出格式。Log4j除了可以記錄程序運行日誌信息外還有一重要的功能就是用來顯示調試信息。很多程序員經常會使用System.out.println語句輸出某個變量值的方法進行調試。這樣會帶來一個非常麻煩的問題:一旦哪天程序員決定不要顯示這些System.out.println的東西了就只能一行行的把這些語句註釋掉。若哪天又需調試變量值,則只能再 一行行去掉這些註釋恢復System.out.println語句。使用log4j可以很好的處理類似情況:使用"DEBUG"等級輸出會類似System.out.println,開發後期不需要輸出調試時可以把等級根據需要調高,如調到"ERROR"等級,只有出錯錯誤時才輸出。

  在apache網站:jakarta.apache.org/log4j可以免費下載到Log4j最新版本的軟件包。

使用步驟分為3步:

目錄結構如下:

技術分享圖片

1. 加入log4j的jar包。

2. 在項目根目錄下添加配置文件log4j.properties(可以修改第一行代碼來設置等級和格式)

技術分享圖片 技術分享圖片
#設置logger級別DEBUG、INFO、WRNING、ERROR和輸出格式A、B、C或D
log4j.rootLogger=DEBUG, A

#輸出到控制臺
log4j.appender.A=org.apache.log4j.ConsoleAppender
log4j.appender.A.layout=org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n

#輸出到E盤的log.log文件
log4j.appender.B=org.apache.log4j.FileAppender
log4j.appender.B.File=E:\\log.log
log4j.appender.B.layout=org.apache.log4j.SimpleLayout

#輸出到E盤的log.html文件
log4j.appender.C=org.apache.log4j.RollingFileAppender
log4j.appender.C.File=E:\\log.html
log4j.appender.C.MaxFileSize=1000KB
log4j.appender.C.MaxBackupIndex=10
log4j.appender.C.layout=org.apache.log4j.HTMLLayout

log4j.appender.D=org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File=E:\\log.log
log4j.appender.D.layout=org.apache.log4j.TTCCLayout
技術分享圖片 技術分享圖片

3. 創建日誌記錄器來使用

技術分享圖片 技術分享圖片
package testLog4j;

import org.apache.log4j.Logger;

public class Test {
    
    //獲取日誌記錄器Logger,名字為本類類名
    private static Logger log = Logger.getLogger(Test.class);
    
    public static void main(String[] args) {
        for(int i=0;i<10;i++){
            log.debug("HellWord");
        }
    }

}
技術分享圖片 技術分享圖片

輸出結果如下:

技術分享圖片

  Log4j由三個重要的組件構成:日誌信息的優先級,日誌信息的輸出目的地,日誌信息的輸出格式。日誌信息的優先級從高到低有ERROR、WARN、 INFO、DEBUG,分別用來指定這條日誌信息的重要程度,比如使用DEBUG,則會包括前面3個,也就是全部都包括,使用INFO,則不包括DEBUG;日誌信息的輸出目的地指定了日誌將打印到控制臺還是文件中;而輸出格式則控制了日誌信息的顯示內容。

1. 配置log輸出目的地:

org.apache.log4j.ConsoleAppender(控制臺)

org.apache.log4j.FileAppender(文件)

org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌文件)

org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)

org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方)

2. log信息的格式:

org.apache.log4j.HTMLLayout(HTML表格形式)

org.apache.log4j.SimpleLayout(簡單格式的日誌,只包括日誌信息的級別和指定的信息字符串 ,如:DEBUG - Hello)

org.apache.log4j.TTCCLayout(日誌的格式包括日誌產生的時間、線程、類別等等信息)

org.apache.log4j.PatternLayout(靈活地自定義日誌格式)

當使用org.apache.log4j.PatternLayout來自定義信息格式時,可以使用log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-ddHH:mm:ss} %p-%m%n 來格式化信息

%c 輸出所屬類的全名,可寫為 %c{Num} ,Num類名輸出的範圍 如:"com.sun.aaa.classB",%C{2}將使日誌輸出輸出範圍為:aaa.classB

%d 輸出日誌時間其格式為 可指定格式 如 %d{HH:mm:ss}等

%l 輸出日誌事件發生位置,包括類目名、發生線程,在代碼中的行數

%n 換行符

%m 輸出代碼指定信息,如info(“message”),輸出message

%p 輸出日誌的優先級,即 FATAL ,ERROR 等

%r 輸出從啟動到顯示該條日誌信息所耗費的時間(毫秒數)

%t 輸出產生該日誌事件的線程名

  其他詳細可參考:http://www.codeceo.com/article/log4j-usage.html

          http://blog.csdn.net/anlina_1984/article/details/5313023/

分類: 日誌

log4j日誌輸出使用_1