摘要:
一、配置步驟
1、 在應用程式中使用log4j
2、 把log4j-*.*jar放入classpath變量中
3、 建立一個配置檔案log4j.properties,放于bin檔案下
二、配置log4j.properties
建立一個配置檔案log4j.properties:
log4j.rootlogger=warn, stdout, r
log4j.appender.stdout=org.apache.log4j.consoleappender
log4j.appender.stdout.layout=org.apache.log4j.patternlayout
# pattern to output the caller's file name and line number.
#log4j.appender.stdout.layout.conversionpattern=%5p [%t] (%f:%l) - %m%n
# print the date in iso 8601 format
log4j.appender.stdout.layout.conversionpattern=%d [%t] %-5p %c - %m%n
log4j.appender.r=org.apache.log4j.rollingfileappender
log4j.appender.r.file=example.log
log4j.appender.r.maxfilesize=100kb
# keep one backup file
log4j.appender.r.maxbackupindex=1
log4j.appender.r.layout=org.apache.log4j.patternlayout
log4j.appender.r.layout.conversionpattern=%p %t %c - %m%n
# print only messages of level warn or above in the package com.foo.
log4j.logger.com.foo=warn
編譯并運作testlog4j會在目錄下生成一個example.log的檔案,螢幕也會輸出資訊,這證明已經你已經成功了第一步。
下面解釋下這些配置檔案
log4j.rootlogger = [ level ], appendname1, appendname2, …appendnamen。同一個記錄器可有多個輸出端。
ps:level的級别(此級别可以自定義,系統預設提供了以下級别)
debug//調試資訊
info//一般資訊
warn//警告資訊
error//錯誤資訊
fatal//緻命錯誤資訊
上面列出的就是所謂log4j的輸出級别,log4j建議隻使用4個級别,它們從上到下分别為error、warn、info、debug,假設你定義的級别是info,那麼error和warn的日志可以顯示而比他低的debug資訊就不顯示了。
log4j.appender.appendername = fully.qualified.name.of.appender.class。log4j提供了以下幾種常用的輸出目的地:
org.apache.log4j.consoleappender,将日志資訊輸出到控制台
org.apache.log4j.fileappender,将日志資訊輸出到一個檔案
org.apache.log4j.dailyrollingfileappender,将日志資訊輸出到一個,并且每天輸出到一個新的日志檔案
org.apache.log4j.rollingfileappender,将日志資訊輸出到一個檔案,通過指定檔案的的尺寸,當檔案大小到達指定尺寸的時候會自動把檔案改名,如名為example.log的檔案會改名為 example.log.1,同時産生一個新的example.log檔案。如果新的檔案再次達到指定尺寸,又會自動把檔案改名為 example.log.2,同時産生一個example.log檔案。依此類推,直到example.log. maxbackupindex, maxbackupindex的值可在配置檔案中定義。
org.apache.log4j.writerappender,将日志資訊以流格式發送到任意指定的地方。
org.apache.log4j.jdbc.jdbcappender,通過jdbc把日志資訊輸出到資料庫中。
log4j提供了一下幾種布局:
org.apache.log4j.htmllayout,以html表格形式布局
org.apache.log4j.patternlayout,可以靈活地指定布局模式
org.apache.log4j.simplelayout,包含日志資訊的級别和資訊字元串
定義一個patternlayout布局的語句為:
log4j.appender.stdout.layout.conversionpattern=%d{absolute} %5p %c{1} - %m%n
ps:conversionpattern參數的格式含義
格式名 含義
%c 輸出日志資訊所屬的類的全名
%d 輸出日志時間點的日期或時間,預設格式為iso8601,也可以在其後指定格式,比如:%d{yyy-mm-dd hh:mm:ss },輸出類似:2002-10-18- 22:10:28
%f 輸出日志資訊所屬的類的類名
%l 輸出日志事件的發生位置,即輸出日志資訊的語句處于它所在的類的第幾行
%m 輸出代碼中指定的資訊,如log(message)中的message
%n 輸出一個回車換行符,windows平台為“\r\n”,unix平台為“\n”
%p 輸出優先級,即debug,info,warn,error,fatal。如果是調用debug()輸出的,則為debug,依此類推
%r 輸出自應用啟動到輸出該日志資訊所耗費的毫秒數
%t 輸出産生該日志事件的線程名
三、在代碼中使用log4j
我們在需要輸出日志資訊的類中做如下的三個工作:
1、導入所有需的log4j類:
import org.apache.log4j.logger;
import org.apache.log4j.propertyconfigurator;
2、在自己的類中定義一個私有靜态類成員:
static logger logger = logger.getlogger(testlog4j.class)
3、使用類的成員方法輸出日志資訊:
if (log.isdebugenabled())
{
log.debug("111");
}
if (log.isinfoenabled())
{
log.info("222");
}
if (log.iswarnenabled())
log.warn("333");
if (log.iserrorenabled())
log.error("444");
if (log.isfatalenabled())
log.fatal("555")
}
特别說明:尊重作者的勞動成果,轉載請注明出處哦~~~
http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt233