`

log4j在web中的配置

阅读更多
1. 下载log4j-1.2.8.jar包,将其存放在WEB-INF/lib目录下。

2. 在WEB-INF/classes目录下新建log4j.properties。

3. log4j.properties的内容可以如下, 不理解,可以看看log4j.properties配置文件介绍
http://maymay.iteye.com/blog/1275432
引用

### set log levels ###
log4j.rootLogger=DEBUG,A1,A2

### direct messages to file framework.log ###
log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A2.File=framework.log
log4j.appender.A2.Threshold = DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.A2.DatePattern='.'yyyy-MM-dd
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=[%-5p]%d%n%l%n%m%n


log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.Target=System.out
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-5p(%10c{1}) %m%n

### application log config ###
log4j.logger.com.may=DEBUG,A1,A2


4. 新建一个servlet,内容可以如下:
package com.may.framework.initLog4j;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.PropertyConfigurator;

public class InitLog4jServlet extends HttpServlet {

	/**
	 * 
	 */
	public void init() {
		final String prefix = getServletContext().getRealPath("/");
		System.out.println("Real path:" + prefix);
		final String path = getServletContext().getRealPath("");
		System.setProperty("webAppHome", path); // 给log4j.properties文件中的变量
												// 'webAppHome' 赋值
		final String file = getInitParameter("log4j-initial-file");
		// if the log4j-init-file is not set, then no point in trying
		if (file != null) {
			PropertyConfigurator.configure(prefix + file);
			System.out.println("Load log4j.properties resource");
		}
	}
}


5. web.xml配置
引用

<servlet>
        <servlet-name>log4j-init</servlet-name>
        <servlet-class>com.may.framework.initLog4j.InitLog4jServlet</servlet-class>
        <init-param>
              <param-name>log4j-initial-file</param-name>
              <param-value>WEB-INF/classes/log4j.properties</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
</servlet>


6. 测试
package app;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class RegisterAction extends Action { 
	
	protected static Logger log = Logger.getLogger("ClassName.class");
	
	/**
	 * 
	 * @param mapping
	 * @param form
	 * @param req
	 * @param res
	 * @return
	 */
	public ActionForward excute(ActionMapping mapping, ActionForm form,
			HttpServletRequest req, HttpServletResponse res) {
		
		log.info("-------------in execute");
		log.debug("------------------");
                  ActionForward forward = new ActionForward();
                  forward = mapping.findForward("success");
	         return (forward);
	}
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics