LOG4J开发实例

首先,需要去下载LOG4J这个软件并解压缩出其中的log4j.jar.在你的应用程序的classpath中包含该JAR文件,你也可以简单地将这个文件拷贝到JDK的%java_home%\lib\ext目录下。
第一步,
Properties文件(first_log4j.properties) 放在系统的src包中。(eclipse布置在\WEB-INF\classes)

log4j.rootLogger=INFO,stdout,logfile

log4j.category.com.sumit=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= [%p][%c]- %m [%d] %n
# logfile set up.
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=set up in web.xml
log4j.appender.logfile.MaxFileSize=50MB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=10
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
#log4j.appender.logfile.layout=org.apache.log4j.HTMLLayout
#log4j.appender.logfile.layout.ConversionPattern=时间:%d%n 优先级:%p%n 源文件:%F%n 类:%c%n 方法:%M%n 行数%L%n 最全:%l%n 信息:%m%n------------------------------------------------%n%n
log4j.appender.logfile.layout.ConversionPattern=%n- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - - - - - - - - - %n时间:%d%n 优先级:%p%n 位置:%l%n 信息:%m%n%n
s


第二步,
Servlet的编写

package com.royal.listener;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class LogListener extends HttpServlet {

private static final long serialVersionUID = 1L;

static Logger log = Logger.getLogger(LogListener.class);
public LogListener() {
}

public void init(ServletConfig config) throws ServletException {
String prefix = config.getServletContext().getRealPath("/");

String properties = config.getInitParameter("log4j_properties");
String logger=config.getInitParameter("log4j_outPutFile");

String propertiesPath = prefix + properties;
Properties props = new Properties();
try {
FileInputStream istream = new FileInputStream(propertiesPath);
props.load(istream);
istream.close();
//toPrint(props.getProperty("log4j.appender.file.File"));
String logFile = prefix + logger;//设置路径
logFile=logFile.replace('\\', '/');

props.setProperty("log4j.appender.logfile.File",logFile);


PropertyConfigurator.configure(props);//装入log4j配置信息

log.info("LOG4J日志------");

log.info("LOG被加载 日志文件位置:"+props.getProperty("log4j.appender.logfile.File"));

} catch (IOException ioe) {
log.error(ioe);
ioe.printStackTrace();
return;
}
}
}


Web.xml: (load-on-srartup=1 项目启动时加载)参数中有一个是logs\log.log,自动生成日志文件,生成在项目下面的logs directory中,文件名为log.log
<servlet>
<servlet-name>LogListener</servlet-name>
<servlet-class>com.royal.listener.LogListener</servlet-class>
<init-param>
<param-name>log4j_properties</param-name>
<param-value>WEB-INF/classes/first_log4j.properties</param-value>
</init-param>
<init-param>
<param-name>log4j_outPutFile</param-name>
<param-value>logs\log.log</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>


第三步
使用

如果是普通的JAVA类,
就得初始化log变量
static Logger log = Logger.getLogger(Mail.class);
在要记录日去的地方
log.error(ex+" 创建MIME邮件对象失败!"); //ex是Exception对象
或者 log.info/log.debug/log.warn等


如果是struts中的DispatchAction的子类,或其它有Log的类的子类。
就可以不用初始化log变量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值