一、直接使用:
//輸出到項目文件夾下輸出1.txt文件中////////////////////////////////////////////////// debug-這是一些debug // info- info- info // warn- warn-在這裡是一些warn // warn/warn rorror-這是一些錯誤// fatal- fatal-這是一些fatal- fatal/fatal/fatal/fatal///////////////////////////////////////局hunnu.sanha.test; import org.apache.log4j.level; import org.apache.log4j.logger; import org.apache.log.simplelayout; import org.apache.log.log.log4j.fileaeappender; public static void main(String args []){simpleLayout佈局= new SimpleLayout(); fileappender appender = null;嘗試{appender = new fileappender(佈局,“ output1.txt”,false); } catch(異常E){} logger.addappender(appender); logger.setlevel((級別)級別。); logger.debug(“這裡有一些調試”); logger.info(“這裡有一些信息”); logger.warn(“這裡有些警告”); logger.error(“這是一些錯誤”); logger.fatal(“這裡是致命的”); }} //按格式輸出到項目文件夾下輸出2.htmlpackage hunnu.sanha.test; import java.io。 logger = logger.getLogger(htmlandwrite.class); public static void main(string args []){htmllayout layout = new htmllayout(); writerAppender appender = null;嘗試{fileOutputStream output = new fileOutputStream(“ output2.html”); appender = new WriterAppender(佈局,輸出); } catch(異常E){} logger.addappender(appender); logger.setlevel((級別)級別。); logger.debug(“這裡有一些調試”); logger.info(“這裡有一些信息”); logger.warn(“這裡有些警告”); logger.error(“這是一些錯誤”); logger.fatal(“這裡是致命的”); }}} //輸出到控制台////////////////////////////////////////////////////////////////////////////////////////////////////////////Milliseconds since program start: 0Classname of caller: hunnu.sanha.test.ConsandpattDate in ISO8601 format: 2008-07-29 11:02:30,578Location of log event: hunnu.sanha.test.Consandpatt.main(Consandpatt.java:20)Message: Here is some DEBUG Milliseconds since program start: 15Classname of來電者:ISO8601格式:2008-07-29 11:02:30,593 log log event:hunnu.sanha.test.consandpatt.main(ConsandPatt.java:21)消息:呼叫者是callisecons, ISO8601格式:2008-07-29 11:02:02:30,593 log事件的hunnu.sanha.test.consandpattdate in in iso8601格式:hunnu.sanha.test.consandpatt.main(consandpatt.java:22)消息:這是一些WARN MILLISECONDS STROGAND:15CLASSN:15CLESN:15CLESN: ISO8601格式:2008-07-29 11:02:30,593 log事件的hunnu.sanha.test.consandpattdate在ISO8601中: hunnu.sanha.test.consandpattdate in ISO8601格式:2008-07-29 11:02:02:30,593 log log event:hunnu.sanha.test.consandpatt.consandpatt.main(Consandpatt.java:24) fatal //////////////////////////////////////////////////////////////////////////ponge org.apache.log4j.patternlayout; import org.apache.log4j.consoleappender; public類ConsandPatt {static logger logger = logger.getLogger(consandpatt.class); public static void main(string args []){//注意,%n是newline string pattern =“毫秒開始,因為程序開始:%r%n”;模式 +=“呼叫者的className:%c%n”;模式 +=“ ISO8601格式的日期:%d {iso8601}%n”;模式 +=“日誌事件的位置:%l%n”;模式 +=“消息:%m%n%n”; pattern layout佈局= new pattern layout(staters); consoleappender appender =新的consoleappender(佈局); logger.addappender(appender); logger.setlevel((級別)級別。 ); logger.debug(“這裡有一些調試”); logger.info(“這裡有一些信息”); logger.warn(“這裡有些警告”); logger.error(“這是一些錯誤”); logger.fatal(“這裡是致命的”); }}}((()
//xmllog4jconfig.xml<?xml版本=“ 1.0”編碼=“ utf-8”? > <! doctype log4j:配置系統“ log4j.dtd”> <log4j:configuration xmlns xmlns:log4j =“ log4j =” name =“ file” value =“ indentify-log.txt”/> <param name =“ append” value =“ falese”/> <layout> <param name =“ conversionpattern” value =“%d [%t]%p-%p-%m%n”/> </> </> </> </> </appender> </appender> </appender> <pirstity> <pirstity <pirctity vality vality vality valie valie valit debug =“ debender appender-ref” </root> </log4j:configuration> //externalxmltest.java package hunnu.sanha.sanha.external; import org.apache.log4j.logger; import org.apache.log4j.xml.domconfigurator; public static void main(string args []){domconfigurator.configure(“ xmllog4jconfig.xml”); logger.debug(“這裡有一些調試”); logger.info(“這裡有一些信息”); logger.warn(“這裡有些警告”); logger.error(“這是一些錯誤”); logger.fatal(“這裡是致命的”); }}//結果輸出到Indentify-Log.txt文件中2008-07-29 10:48:11,375 [main] DEBUG - Here is some DEBUG2008-07-29 10:48:11,375 [main] INFO - Here is some INFO2008-07-29 10:48:11,375 [main] WARN - Here is some WARN2008-07-29 10:48:11,375 [主要]錯誤 - 以下是一些錯誤2008-07-29 10:48:11,375 [主要]致命 - 這是一些致命的// plainlog4jconfig.txt#初始root lotigger,帶有級別debug的初始root loat loat loat with Level debug並稱其為blahlog4j.rootlogger = debug = debug = debug = debug# BLAHlog4j.appender.BLAH=org.apache.log4j.ConsoleAppender# set set that layout to be SimpleLayoutlog4j.appender.BLAH.layout=org.apache.log4j.SimpleLayout //Externalplaintest.javapackage hunnu.sanha.external;import org.apache.log4j.Logger;import org.apache.log4j.propertyconfigurator; public class externalPlaintest {static logger logger = logger.getLogger(externalPlaintEct.Class); public static void main(string args []){propertyConfigurator.configure(“ plainlog4jconfig.txt”); logger.debug(“這裡有一些調試”); logger.info(“這裡有一些信息”); logger.warn(“這裡有些警告”); logger.error(“這是一些錯誤”); logger.fatal(“這裡是致命的”); }} //結果輸出到控制台debug-這是一些debuginfo-這是一些Infowarn-這是一些Warnerror-這是一些錯誤 - 這是一些致命的附加:
2.1。 日誌信息的優先級
分為致命,致命錯誤,警告,信息,debug,
log4j建議只使用四個級別,優先級從高到低分別是優先級從高到低分別是
假如在一個級別為q的logger中發生一個級別為p的日誌請求,如果p> = q,那麼請求將被啟用。這是log4j的核心原則。
比如在這裡定義了信息級別,則應用程序中所有debug 級別的日誌信息將不被打印出來;
2.2。 輸出源的使用
有選擇的能用或者禁用日誌請求僅僅是log4j的一部分功能。 log4j允許日誌請求被輸出到多個輸出源。用log4j的話說,一個輸出源被稱做一個appender。
(appender包括控制台(控制台),文件(文件),GUI組件(圖形的組件),遠程套接字服務器(套件(套件服務),JMS(java信息服務),nt事件logggers loggers loggers loggers loggers loggers loggers loggers loggers loggers logge nt的事件日誌)
一個logger可以設置超過一個的appender。
用addappender方法添加一個appender到一個給定的logger。對於一個給定的logger它每個生效的日誌請求都被轉發到該logger所有的appender上和該logger的父輩logger的appender上。
2.2.1。 ConsoleAppender
如果使用consoleappender,那麼log信息將寫到控制台。效果等同於直接把信息打印到系統。
2.2.2。傳話劑
使用fileappender,那麼log信息將寫到指定的文件中。這應該是比較經常使用到的情況。
相應地,在配置文件中應該指定log輸出的文件名。如下配置指定了log文件名為dglog.txt
log4j.appender.a2.file = dglog.txt
注意將a2替換為具體配置中appender的別名。
2.2.3。 Dailyrollingappender
使用fileappender可以將log信息輸出到文件中,但是如果文件太大了讀起來就不方便了。這時就可以使用dailyrolllingappender。 dailyrolllingAppender可以把log log信息輸出到按照日期來區分的文件中。配置文件就會每天產生一個log文件
log4j.appender.a2 = org.apache.log4j.dailyrollollingfileappender
log4j.appender.a2.file = dglog
log4j.appender.a2.datepattern ='。 'yyyy-mm-dd
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionpattern =%5R%-5p%c {2} - %m%n
2.2.4。 org.apache.log4j.RollingFileAppender
文件大小到達指定尺寸的時候產生一個新的文件。
log4j.appender.r = org.apache.log4j.rollingfileappender
log4j.appender.r.file = ../logs/dglog.log
#控制最大日誌文件大小
log4j.appender.r.maxfilesize = 100kb
#存檔日誌文件(在這裡一個備份文件)
log4j.appender.r.maxbackupIndex = 1
log4j.appender.r.layout = org.apache.log4j.patternlayout
log4j.appender.r.layout.conversionpattern =%p%t%c -%m%n
這個配置文件指定了輸出源r,是一個輪轉日誌文件。最大的文件是100Kb,當一個日誌文件達到最大尺寸時,log4j example.log重命名為dglog.log.1,然後重建一個新的dglog.log.log文件,依次輪轉。 ,依次輪轉。
2.2.5。 org.apache.log4j.writerappender
將日誌信息以流格式發送到任意指定的地方。
2.3。佈局的配置
佈局指定了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輸出優先級,即,調試,信息,警告,錯誤,致命
%r輸出自應用啟動到輸出該log信息耗費的毫秒數
%c輸出所屬的類目,通常就是所在類的全名
%t輸出產生該日誌事件的線程名
%n輸出一個回車換行符,Windows平台為“ RN”,Unix平台為“ n”
%d輸出日誌時間點的日期或時間,默認格式為ISO8601,也可以在其後指定格式,比如:%d {yyy mmm dd hh:mm:mm:ss,sss},輸出類似:2002年10月10日22:10:10:10:28,9211
%l輸出日誌事件的發生位置,包括類目名、發生的線程
2.3.3。 例子
例子1:顯示日期和log信息
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionpattern =%d {yyyy-mm-dd hh:mm:ss,sss}%m%n
打印的信息是:
2002-11-12 11:49:42,866從角色中選擇 *,其中1 = 1訂單由創建desc
例子2:顯示日期,log發生地方和log信息
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionpattern =%d {yyyy-mm-dd hh:mm:ss,sss}%l“#”%m%n
2002-11-12 11:51:46,313 CN.NET.UNET.WEBOA.SYSTEM.DAO.ROLEDAO.SELECT(ROLEDAO.JAVA:409)“#”
從角色中選擇 *通過創建的desc從1 = 1順序
例子3:顯示log級別,時間,調用方法,log信息
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionpattern = [%-5p]%d {yyyy-mm-dd HH:MM:SS,SSS}
方法:%l%n%m%n
日誌信息:
[調試] 2002-11-12 12:00:57,376
方法:cn.net.unet.weboa.system.dao.roledao.select(roledao.java:409)
從角色中選擇 *通過創建的desc從1 = 1順序
2.4。 配置文件的例子:
log4j.rootlogger = debug
#將dao層log記錄到daolog,alllog中
log4j.logger.dao = debug,a2,a4
#將邏輯層log記錄到BusinessLog,alllog中
log4j.logger.businesslog = debug,a3,a4
#a1-打印到屏幕上
log4j.appender.a1 = org.apache.log4j.consoleappender
log4j.appender.a1.layout = org.apache.log4j.patternlayout
log4j.appender.a1.layout.conversionpattern =%-5p [%t]%37c%3x -%m%n
#a2--打印到文件daolog-專門為dao層服務
log4j.appender.a2 = org.apache.log4j.dailyrollollingfileappender
log4j.appender.a2.file = daolog
log4j.appender.a2.datepattern ='。 'yyyy-mm-dd
log4j.appender.a2.layout = org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionpattern = [%-5p]%d {yyyy-mm-dd HH:MM:SS,SSS}
方法:%l%n%m%n
#a3--打印到文件businessLog中-專門記錄邏輯處理層服務log信息
log4j.appender.a3 = org.apache.log4j.dailyrollollingfileappender
log4j.appender.a3.file = BusinessLog
log4j.appender.a3.datePattern ='。 'yyyy-mm-dd
log4j.appender.a3.layout = org.apache.log4j.patternlayout
log4j.appender.a3.layout.conversionpattern = [%-5p]%d {yyyy-mm-dd HH:MM:SS,SSS}
方法:%l%n%m%n
#a4--打印到文件alllog中-記錄所有log信息
log4j.appender.a4 = org.apache.log4j.dailyrollollingfileappender
log4j.appender.a4.file = alllog
log4j.appender.a4.datePattern ='。 'yyyy-mm-dd
log4j.appender.a4.layout = org.apache.log4j.patternlayout
log4j.appender.a4.layout.conversionpattern = [%-5p]%d {yyyy-mm-dd hh:mm:mm:ss,sss}
方法:%l%n%m%n
以上這篇淺談在java項目中log4j的使用就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。 ,也希望大家多多支持武林網。