java中如何使用log4j


(一)log4j的用途:可以用來做日志文件,即可以往.log文件中輸入我們在程序中運行的一些數據,比如說:你往數據庫里面保存了一條信息,同樣,你也可以用log4j的日志文件來記錄你所保存的信息,並且更完整,可以包含1、保存的時間 2、調用的函數 3、自己想記錄、保存什么信息  等等  這些都是可以的。
(二)改如何使用?   使用log4j來做日志文件需要三個東西:
1、jar包,即log4j.jar下面是jar包的下載地址   log4j.jar的下載地址http://ishare.iask.sina.com.cn/f/12460553.html?from=like 下載成功后使用eclipse導入到工程中即可。
2、log4j的配置文件。log4j有兩種方式的配置文件,兩者只要使用一者就可以了,分別為xml文件和java的屬性文件(properties),本人覺得使用java的屬性文件會比較簡單一點,所以這里主要講解屬性文件該如何使用。首先,在工程的src目錄下創建:log4j.properties 文件,然后將下面這段代碼(配置文件)粘貼到改文件中保存:(注:#標注的說明這行是注釋,不是用java的來表示注釋)
 
log4j.rootLogger=DEBUG,CONSOLE,A1,R,FILE1,FILE2,FILE3
log4j.addivity.org.apache=true 
 
# 應用於控制台 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.Threshold=INFO 
log4j.appender.CONSOLE.Target=System.out 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 
 
# 每天新建日志 
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.A1.File=C\:/log4j.log 
log4j.appender.A1.Threshold=DEBUG 
log4j.appender.A1.DatePattern='.'yyyy-MM-dd 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}\:%L \: %m%n 
 
 
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
#每天輸出一個日志文件
log4j.appender.R.DatePattern='_'yyyy-MM-dd'.log'
#昨天的日志文件名Sendmsg+“昨天日期”.log
log4j.appender.R.File=C\:/log4j/debusssssg.log 
#日志文件的路徑,${catalina.home} 即Tomcat下
log4j.appender.R.layout=org.apache.log4j.HTMLLayout 
#日志文件輸出格式 
log4j.appender.R.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 
 
 
#應用於文件 (調試文件)
log4j.appender.FILE1=org.apache.log4j.FileAppender 
log4j.appender.FILE1.File=C\:/log4j/debug.log 
log4j.appender.FILE1.Threshold=DEBUG
log4j.appender.FILE1.Append=true
log4j.appender.FILE1.layout=org.apache.log4j.PatternLayout 
log4j.appender.FILE1.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 
 
 
#應用於文件 (INFO文件)
log4j.appender.FILE2=org.apache.log4j.FileAppender 
log4j.appender.FILE2.File=C\:/log4j/INFO.log 
log4j.appender.FILE2.Threshold=INFO
log4j.appender.FILE2.Append=true
log4j.appender.FILE2.layout=org.apache.log4j.PatternLayout 
log4j.appender.FILE2.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 
 
#應用於文件 (錯誤文件)
log4j.appender.FILE3=org.apache.log4j.FileAppender 
log4j.appender.FILE3.File=C\:/log4j/error.log 
log4j.appender.FILE3.Threshold=ERROR
log4j.appender.FILE3.Append=false 
log4j.appender.FILE3.layout=org.apache.log4j.PatternLayout 
log4j.appender.FILE3.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n 
 
 
我們可以把每一個log4j.appender.Xx 都看成是一個輸出  = 右邊是對應的通過什么方式來輸出,如
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.FILE3=org.apache.log4j.FileAppender  
 
我們可以把每一個log4j.appender.Xx.File = 保存文件的地址和文件名,如:
log4j.appender.FILE1.File=C\:/log4j/debug.log 
 
我們可以把每一個log4j.appender.Xx.Threshold = 這是什么級別(級別概念請查看下面的 日志級別),如:
log4j.appender.FILE3.Threshold=ERROR
 
等等,這些信息都可以在百度上查到,這里不詳細講太多。
 
 

Log4j由三個重要的組成構成:日志記錄器(Loggers),輸出端(Appenders)和日志格式化器(Layout)。

A).Logger對象的獲得或創建
Logger被指定為實體,由一個String類的名字識別。Logger的名字是大小寫敏感的,且名字之間具有繼承關系,子名用父名作為前綴,用點“.”分隔,例如x.y是x.y.z的父親。
root Logger(根Logger)是所有Logger的祖先,它有如下屬性:
1.它總是存在的。
2.它不可以通過名字獲得。

 

B)日志級別
每個Logger都被了一個日志級別(log level),用來控制日志信息的輸出。日志級別從高到低分為:
A:off         最高等級,用於關閉所有日志記錄。
B:fatal       指出每個嚴重的錯誤事件將會導致應用程序的退出。
C:error      指出雖然發生錯誤事件,但仍然不影響系統的繼續運行。
D:warm     表明會出現潛在的錯誤情形。
E:info         一般和在粗粒度級別上,強調應用程序的運行全程。
F:debug     一般用於細粒度級別上,對調試應用程序非常有幫助。
G:all           最低等級,用於打開所有日志記錄。

 

C)輸出端Appender
Appender用來指定日志信息輸出到哪個地方,可以同時指定多個輸出目的地。Log4j允許將信息輸出到許多不同的輸出設備中,一個log信息輸出目的地就叫做一個Appender。
每個Logger都可以擁有一個或多個Appender,每個Appender表示一個日志的輸出目的地。可以使用Logger.addAppender(Appender app)為Logger增加一個Appender,也可以使用Logger.removeAppender(Appender app)為Logger刪除一個Appender。
以下為Log4j幾種常用的輸出目的地。
a:org.apache.log4j.ConsoleAppender:將日志信息輸出到控制台。
b:org.apache.log4j.FileAppender:將日志信息輸出到一個文件。
c:org.apache.log4j.DailyRollingFileAppender:將日志信息輸出到一個日志文件,並且每天輸出到一個新的日志文件。
d:org.apache.log4j.RollingFileAppender:將日志信息輸出到一個日志文件,並且指定文件的尺寸,當文件大小達到指定尺寸時,會自動把文件改名,同時產生一個新的文件。
e:org.apache.log4j.WriteAppender:將日志信息以流格式發送到任意指定地方。
f::org.apache.log4j.jdbc.JDBCAppender:通過JDBC把日志信息輸出到數據庫中。

 

最后,創建一個Log類,將下面的代碼復制進去運行即可查看到在C盤下會生成日志文件

import org.apache.log4j.Logger;  

public class Log {

     private static Logger logger = Logger.getLogger(Log.class);  

     public static void main(String[] args) {  

      //  記錄 debug 級別的信息   

       logger.debug("This is debug message.");  

       //  記錄 info 級別的信息   

       logger.info("This is info message.");  

       //  記錄 error 級別的信息   

       logger.error("This is error message.");  

   }  

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM