在程序員的路上總想紀(jì)錄點(diǎn)什么!作為自己奮斗的一個(gè)經(jīng)歷吧!
言歸正傳!
已經(jīng)習(xí)慣了使用Log4j來(lái)做日志,就講一下它的配置吧,其實(shí)很簡(jiǎn)單。
我一般用MyEclipse開發(fā),可以從網(wǎng)站獲得(http://www.myeclipseide.com)。
新建一個(gè)工程,然后把log4j.jar導(dǎo)入到工程目錄下,然后把log4j.properties文件放到工程目錄的src下,
最關(guān)鍵的還是配置文件的內(nèi)容,下面是我經(jīng)過整理的,與大家分享:
#日志分為業(yè)務(wù)日志和后臺(tái)日志
log4j.properties
#創(chuàng)建了兩個(gè)附加器,一個(gè)叫stdout,另一個(gè)叫rolling
#DEBUG?(調(diào)試)、INFO?(信息)、WARN?(警示)、ERROR?(錯(cuò)誤)、FATAL?(致命錯(cuò)誤)
#日志有五種級(jí)別,可以修改第一個(gè)參數(shù)值,以控制在控制臺(tái)輸出的日志和寫入文件的日志內(nèi)容。
log4j.rootLogger
=
WARN,?stdout,?rolling

#配置stdout附加器以便將消息輸出到控制臺(tái)
log4j.appender.stdout
=
org.apache.log4j.ConsoleAppender

#配置stdout附加器以便使用PatternLayout
log4j.appender.stdout.layout
=
org.apache.log4j.PatternLayout

#輸出調(diào)用者的文件名和行號(hào)所用的模式,其中p表示消息級(jí)別,d表示時(shí)間,ABSOLUTE表示絕對(duì)時(shí)間
#HH:mm:ss?SSS表示時(shí)分秒,
#(
%
c.java:
%
M:
%
L)經(jīng)典配置,可以顯示完全類名、方法名和行數(shù),在MyEclipse控制臺(tái)點(diǎn)擊可以找到源碼當(dāng)
#前類、當(dāng)前方法和當(dāng)前行,
"
-
"
后的文字是信息的表述。
#
%
c為完整類名,
%
F為類名(Function),
%
M為方法名(Method),
%
L為行數(shù)(Line)。

log4j.appender.stdout.layout.ConversionPattern
=
[
%
5p]?
%
d
{ABSOLUTE}
?
-
?
%
m
%
n?(
%
c.java:
%
M:
%
L)?\n

#得到com.dao包下的DEBUG調(diào)試信息。
log4j.logger.com.dao
=
DEBUG


#把rolling附加器配置為RollingFileAppender
log4j.appender.rolling
=
org.apache.log4j.RollingFileAppender?

#Tomcat5.
5
?中的日志保存在bin目錄下,因?yàn)閏ommons
-
logging.jar包在那個(gè)目錄
#log4j.appender.rolling.File
=
..
/
webapps
/
TradeCRM
/
out.log


#配置rolling附加器所使用的輸出文件名
#如果是單元測(cè)試日志,默認(rèn)保存路徑為工程目錄下
log4j.appender.rolling.File
=
output.log?

#配置rolling所使用的輸出文件的最大容量
log4j.appender.rolling.MaxFileSize
=
100KB?

#為rolling附加器做一個(gè)備份文件
log4j.appender.rolling.MaxBackupIndex
=
1
?

#配置rolling附加器所使用的布局模式和轉(zhuǎn)換模式
log4j.appender.rolling.layout
=
org.apache.log4j.PatternLayout
log4j.appender.rolling.layout.ConversionPattern
=
[
%
5p]?
%
d?(
%
c.java:
%
M:
%
L)?
-
?\n
%
m
%
n

基本上是照上面的配置進(jìn)行,如有更好的方式,歡迎聯(lián)系我。E-Mail:tap2008@126.com
現(xiàn)在我們可以開始寫一個(gè)測(cè)試類了:
FirstTest.java
package
?com.test;

import
?org.apache.log4j.Logger;

import
?junit.framework.TestCase;


public
?
class
?FirstTest?
extends
?TestCase?
{
????
private
?
static
?
final
?Logger?log?
=
?Logger.getLogger(FirstTest.
class
);


????
/**?*/
/**
?????*?繼承父類的初始化方法
?????
*/
????
public
?
void
?setUp()?
{

????}
????
/**?*/
/**
?????*?繼承父類的銷毀方法
?????
*/
????
public
?
void
?tearDown()?
{

????}
????
/**?*/
/**
?????*?測(cè)試方法,必須以test開頭
?????
*/
????
public
?
void
?testFirst()?
{

????????
/**/
/*
?????????*?避免參數(shù)構(gòu)建的花費(fèi)?
?????????*?For?some?cat?Category?object,?when?you?write,
?????????*?cat.debug("This?is?entry?number:?"?+?i?);
?????????*?If?you?are?worried?about?speed,?then?you?should?write
?????????
*/
????????
if
?(log.isInfoEnabled())?
{
????????????log.info(
"
Hello?World!
"
);
????????}
????}
}
好了,祝您成功!第一次寫,有不好的地方望指點(diǎn)!不勝感激!