log4j使用示例
--by blues(zhaochaohua@sina.com)
part 1 介绍
log4j的好处在于:
1.通过修改配置文件,就可以决定log信息输出到何处(console,文件,...),是否输出。
这样,在系统开发阶段可以打印详细的log信息以跟踪系统运行情况,而在系统稳定后可以关闭log输出,从而在能跟踪系统运行情况的同时,又减少了垃圾代码(system.out.println(...)等)。
2.使用log4j,需要整个系统有一个统一的log机制,有利于系统的规划。
log4j的使用本身很简单。但合理地规划一个系统的统一log机制需要周全的考虑。
其他关于log4j的信息参看log4j自带的文档。
part ii 配置文件详细解释
先看一个配置文件的例子:
1.配置文件的例子
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.dailyrollingfileappender
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} method:%l%n%m%n
#a3--打印到文件businesslog中--专门记录逻辑处理层服务log信息
log4j.appender.a3=org.apache.log4j.dailyrollingfileappender
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} method:%l%n%m%n
#a4--打印到文件alllog中--记录所有log信息
log4j.appender.a4=org.apache.log4j.dailyrollingfileappender
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:ss,sss} method:%l%n%m%n
log4j.appender.a2=org.apache.log4j.dailyrollingfileappender
log4j.appender.a2.file=demo
log4j.appender.a2.datepattern='.'yyyy-mm-dd
log4j.appender.a2.layout=org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionpattern=%m%n
log4j.appender.a2.layout=org.apache.log4j.patternlayout打印的信息是:
log4j.appender.a2.layout.conversionpattern=%d{yyyy-mm-dd hh:mm:ss,sss} %m%n
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..net.weboa.system.dao.roledao.select(roledao.java:409) "#" select * from role where 1=1 order by createdate desc
log4j.appender.a2.layout=org.apache.log4j.patternlayout
log4j.appender.a2.layout.conversionpattern=[%-5p] %d{yyyy-mm-dd hh:mm:ss,sss} method:%l%n%m%n
log信息:
[debug] 2002-11-12 12:00:57,376 method:cn.net..net.weboa.system.dao.roledao.select(roledao.java:409)
select * from role where 1=1 order by createdate desc
public class actionservlet extends httpservlet{
...
/**
* initialize global variables
*/
public void init() throws servletexception {
// 初始化action资源
try{
initlog4j();
...
}catch(ioexception e){
throw new servletexception("load actionres is error");
}
}
...
protected void initlog4j(){
propertyconfigurator.configure("log4j.properties");
}
...
}//end class actionservlet
log4j.appender.a2=org.apache.log4j.dailyrollingfileappender
log4j.appender.a2.file=demo
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} %l%n%m%n
public class roledao extends basedbobject
{
...
static logger log = logger.getlogger("dao");
...
public beancollection selectall() throws sqlexception
{
stringbuffer sql = new stringbuffer(sqlbuf_len);
sql.append("select * from " + tablename + " order by roldid");
//system.out.println(sql.tostring());
log.debug(sql);
...
}
...
}
public class roledao(){
static logger log = logger.getlogger("dao");
//在每一次new roledao对象的时候都执行一次configure()操作
public roledao(transactionmanager transmgr) throws sqlexception
{
...
propertyconfigurator.configure("log4j.properties");
...
}
public void select(){
...
//使用log4j进行log记录
log.debug("...");
...
}
}怎么解决:Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器