程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> log4j的設置裝備擺設文件具體解析

log4j的設置裝備擺設文件具體解析

編輯:關於JAVA

log4j的設置裝備擺設文件具體解析。本站提示廣大學習愛好者:(log4j的設置裝備擺設文件具體解析)文章只能為提供參考,不一定能成為您想要的結果。以下是log4j的設置裝備擺設文件具體解析正文


1.Log4j的長處
Log4j是Apache的一個開放源代碼項目,經由過程應用Log4j,我們可以掌握日記信息保送地;我們也能夠掌握每條日記的輸入格局;經由過程界說每條日記信息的級別,我們可以或許加倍過細地掌握日記的生成進程。最使人感興致的就是,這些可以經由過程一個設置裝備擺設文件來靈巧地停止設置裝備擺設,而不須要修正運用的代碼。

log4j的利益在於:
(1) 經由過程修正設置裝備擺設文件,便可以決議log信息的目標地——掌握台、文件、GUI組件、乃至是套接口辦事器、NT的事宜記載器、UNIX Syslog守護過程等。

(2) 經由過程修正設置裝備擺設文件,可以界說每條日記信息的級別,從而掌握能否輸入。在體系開辟階段可以打印具體的log信息以跟蹤體系運轉情形,而在體系穩固後可以封閉log輸入,從而在能跟蹤體系運轉情形的同時,又削減了渣滓代碼(System.out.println(......)等)。

(3) 應用log4j,須要全部體系有一個同一的log機制,有益於體系的計劃。

2.設置裝備擺設文件
Log4j由三個主要的組件組成:日記信息的優先級,日記信息的輸入目標地,日記信息的輸入格局。日記信息的優先級從高到低有FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL,分離用來指定這條日記信息的主要水平;日記信息的輸入目標地指定了日記將打印到掌握台照樣文件中;而輸入格局則掌握了日記信息的顯示內容。

2.1 日記信息的優先級
Log4j建議只應用四個級別,優先級從高到低分離是ERROR、WARN、INFO、DEBUG。經由過程在這裡界說的級別,您可以掌握到運用法式中響應級其余日記信息的開關。如在這裡界說了INFO級別,則運用法式中一切低於INFO級其余日記信息將不被打印出來。

2.2 輸入源的應用
有選擇的能用或許禁用日記要求僅僅是Log4j的一部門功效。Log4j許可日記要求被輸入到多個輸入源。用Log4j的話說,一個輸入源被稱做一個Appender。

Appender包含console(掌握台), files(文件), GUI components(圖形的組件), remote socket servers(socket 辦事), JMS(java信息辦事), NT Event Loggers(NT的事宜日記), remote UNIX Syslog daemons(長途UNIX的後台日記辦事)。它也能夠做到異步記載。 一個logger可以設置跨越一個的appender。 用addAppender辦法添加一個appender到一個給定的logger。關於一個給定的logger它每一個失效的日記要求都被轉發到該logger一切的appender上和該logger的父輩 logger的appender上。

2.2.1 ConsoleAppender
假如應用ConsoleAppender,那末log信息將寫到Console。後果同等於直接把信息打印到System.out上了。

2.2.2 FileAppender
應用FileAppender,那末log信息將寫到指定的文件中。這應當是比擬常常應用到的情形。 響應地,在設置裝備擺設文件中應當指定log輸入的文件名。以下設置裝備擺設指定了log文件名為log.txt。

log4j.appender.appendername.File=log.txt 留意將appendername調換為詳細設置裝備擺設中Appender的別號。

留意:指定的log文件途徑成績

2.2.3 DailyRollingAppender
應用FileAppender可以將log信息輸入到文件中,然則假如文件太年夜了讀起來就不便利了。這時候便可以應用DailyRollingAppender。DailyRollingAppender可以把Log信息輸入到依照日期來辨別的文件中。設置裝備擺設文件就會天天(時光可以設定)發生一個log文件,每一個log文件只記載當天的log信息:

log4j.appender.appendername=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.Aappendername.file=log 
log4j.appender.appendername.DatePattern='.'yyyy-MM-dd 
log4j.appender.appendername.layout=org.apache.log4j.PatternLayout 
log4j.appender.appendername.layout.ConversionPattern= %5r %-5p %c{2} - %m%n

2.2.4 RollingFileAppender
文件年夜小達到指定尺寸的時刻發生一個新的文件。

og4j.appender.appendername=org.apache.log4j.RollingFileAppender 
log4j.appender.appendername.File= ../logs/rlog.log 
# Control the maximum log file size 
log4j.appender.appendername.MaxFileSize=100KB 
# Archive log files (one backup file here) 
log4j.appender.appendername.MaxBackupIndex=1

log4j.appender.appendername.layout=org.apache.log4j.PatternLayout 
log4j.appender.appendername.layout.ConversionPattern=%p %t %c - %m%n

這個設置裝備擺設文件指定了輸入源appendername,是一個輪轉日記文件。最年夜的文件是100KB,當一個日記文件到達最年夜尺寸時,Log4J會主動把rlog.log重定名為rlog.log.1,然後重建一個新的rlog.log文件,順次輪轉。

2.2.5 WriterAppender
將日記信息以流格局發送就任意指定的處所。

2.3 Layout的設置裝備擺設
Layout指定了log信息輸入的款式。

2.3.1 結構款式

org.apache.log4j.HTMLLayout(以HTML表格情勢結構), 
org.apache.log4j.PatternLayout(可以靈巧地指定結構形式), 
org.apache.log4j.SimpleLayout(包括日記信息的級別和信息字符串), 
org.apache.log4j.TTCCLayout(包括日記發生的時光、線程、種別等等信息) 

2.3.2 格局

%m 輸入代碼中指定的新聞 
%p 輸入優先級,即DEBUG,INFO,WARN,ERROR,FATAL 
%r 輸入自運用啟動到輸入該log信息消耗的毫秒數 
%c 輸入所屬的類目,平日就是地點類的全名 
%t 輸入發生該日記事宜的線程名 
%n 輸入一個回車換行符,Windows平台為"rn",Unix平台為"n" 
%d 輸入日記時光點的日期或時光,默許格局為ISO8601,也能夠在厥後指定格局,好比:%d{yyy MMM dd HH:mm:ss,SSS},輸入相似:2002年10月18日 22:10:28,921 
%l 輸入日記事宜的產生地位,包含類目名、產生的線程,和在代碼中的行數。舉例:Testlog4.main(Test Log4.java:10)

3.為分歧的Appender設置日記輸入級別
經由過程在設置裝備擺設中修正Appender的Threshold即能完成,好比上面的例子:

設置裝備擺設文件:
log4j.rootLogger = debug,A,B,C

# 輸入到掌握台
log4j.appender.A = org.apache.log4j.ConsoleAppender
log4j.appender.A.Target = System.out
log4j.appender.A.layout = org.apache.log4j.PatternLayout
log4j.appender.A.layout.ConversionPattern = %p %t %c - %m%n

# 輸入到日記文件
log4j.appender.B = org.apache.log4j.DailyRollingFileAppender
log4j.appender.B.File = logs/log.log
log4j.appender.B.Append = true
log4j.appender.B.Threshold = DEBUG # 輸入EBUG級別以上的日記
log4j.appender.B.layout = org.apache.log4j.PatternLayout
log4j.appender.B.layout.ConversionPattern = %p %t %c - %m%n

# 保留異常信息到零丁文件
log4j.appender.C = org.apache.log4j.DailyRollingFileAppender
log4j.appender.C.File = logs/error.log # 異常日記文件名
log4j.appender.C.Append = true
log4j.appender.C.Threshold = ERROR #只輸入ERROR級別以上的日記
log4j.appender.C.layout = org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern = %p %t %c - %m%n

例子:

public class TestLog4j
{
    public static void main(String[] args)
    {
        PropertyConfigurator.configure("D:/Code/conf/log4j.properties");
        Logger logger = Logger.getLogger(TestLog4j.class);
        logger.debug("debug");
        logger.error("error");  
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved