在程序员的路上总想纪录点什么!作为自己奋斗的一个经历吧!
言归正传!
已经习惯了使用Log4j来做日志,就讲一下它的配置吧,其实很简单。
我一般用MyEclipse开发,可以从网站获得(http://www.myeclipseide.com)。
新建一个工程,然后把log4j.jar导入到工程目录下,然后把log4j.properties文件放到工程目录的src下,
最关键的还是配置文件的内容,下面是我经过整理的,与大家分享:
#日志分为业务日志和后台日志
log4j.properties
#创建了两个附加器,一个叫stdout,另一个叫rolling
#DEBUG (调试)、INFO (信息)、WARN (警示)、ERROR (错误)、FATAL (致命错误)
#日志有五种级别,可以修改第一个参数值,以控制在控制台输出的日志和写入文件的日志内容。
log4j.rootLogger
=
WARN, stdout, rolling
#配置stdout附加器以便将消息输出到控制台
log4j.appender.stdout
=
org.apache.log4j.ConsoleAppender
#配置stdout附加器以便使用PatternLayout
log4j.appender.stdout.layout
=
org.apache.log4j.PatternLayout
#输出调用者的文件名和行号所用的模式,其中p表示消息级别,d表示时间,ABSOLUTE表示绝对时间
#HH:mm:ss SSS表示时分秒,
#(
%
c.java:
%
M:
%
L)经典配置,可以显示完全类名、方法名和行数,在MyEclipse控制台点击可以找到源码当
#前类、当前方法和当前行,
"
-
"
后的文字是信息的表述。
#
%
c为完整类名,
%
F为类名(Function),
%
M为方法名(Method),
%
L为行数(Line)。
log4j.appender.stdout.layout.ConversionPattern
=
[
%
5p]
%
d
{ABSOLUTE}
-
%
m
%
n (
%
c.java:
%
M:
%
L) \n
#得到com.dao包下的DEBUG调试信息。
log4j.logger.com.dao
=
DEBUG
#把rolling附加器配置为RollingFileAppender
log4j.appender.rolling
=
org.apache.log4j.RollingFileAppender
#Tomcat5.
5
中的日志保存在bin目录下,因为commons
-
logging.jar包在那个目录
#log4j.appender.rolling.File
=
..
/
webapps
/
TradeCRM
/
out.log
#配置rolling附加器所使用的输出文件名
#如果是单元测试日志,默认保存路径为工程目录下
log4j.appender.rolling.File
=
output.log
#配置rolling所使用的输出文件的最大容量
log4j.appender.rolling.MaxFileSize
=
100KB
#为rolling附加器做一个备份文件
log4j.appender.rolling.MaxBackupIndex
=
1
#配置rolling附加器所使用的布局模式和转换模式
log4j.appender.rolling.layout
=
org.apache.log4j.PatternLayout
log4j.appender.rolling.layout.ConversionPattern
=
[
%
5p]
%
d (
%
c.java:
%
M:
%
L)
-
\n
%
m
%
n
基本上是照上面的配置进行,如有更好的方式,欢迎联系我。E-Mail:tap2008@126.com
现在我们可以开始写一个测试类了:
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()
{
}
/** */
/**
* 测试方法,必须以test开头
*/
public
void
testFirst()
{
/**/
/*
* 避免参数构建的花费
* 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!
"
);
}
}
}
好了,祝您成功!第一次写,有不好的地方望指点!不胜感激!