struts2中配置log4j 案例


首先导入log4j包到项目的WEB-INF/lib中
1,创建serverlet用来初始化log4j property 文件,加载log4j,
代码如下:
package utill;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import org.apache.log4j.PropertyConfigurator;

public class Log4jInitServlet extends HttpServlet{

    private static final long serialVersionUID = 1L;
    
    public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {           
    }
    public void init() throws ServletException {   
    
        System.setProperty("logPath", "C://Documents and Settings//jl60155//webIVR-workspace//ScriptMaint-WebVersion//logs//myLog.log"); 
        System.err.println("Log4j Servlet test Path: " + System.getProperty("logPath"));
       
        PropertyConfigurator.configure(getServletContext().getRealPath("/") + getInitParameter("configfile"));   
    }  
}

注: 以上log文件位置进行了hardcode, 在项目中应用可用读取属性文件动态加载.

2,配置web.xml,使web services启动时初始化第一步中创建的serverlet 类:
加入如下代码:

 <servlet>  
    <servlet-name>log4j config file</servlet-name>  
    <servlet-class>utill.Log4jInitServlet</servlet-class>  
    <init-param>  
        <param-name>configfile</param-name>  
        <param-value>WEB-INF/log4j.properties</param-value>  
    </init-param>  
       
    <load-on-startup>1</load-on-startup>  
  </servlet>

3,创建log4j.properties文件:
内容如下:

#log4j.rootLogger=debug, A1
log4j.logger.ScriptMaint=debug, A1

log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.file=${logPath}
log4j.appender.A1.DatePattern=yyyy-MM-dd'.log'
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss, SSS}[%c]-[%p] %m%n

注: 该文件位置取决于web.xml的配置位置, 这里根据项目需要定义了自己的logger,未使用rootLooger,(rootLooger会打印出应用框架中root级别的log信息,
这里是struts2核心jar包中定义的,我没有找到控制方法也不想去修改struts2 jar包,虽然是开源的,项目没那需要,故,使用了自定义的looger), 这里我们用${logPath}获取我们
在初始化的serverlet中设置的系统变量

4, action 中使用looger必要信息:
导入包:
import org.apache.log4j.Logger;
获取looger 付给我们自定义的logger变量:
private static Logger logger = Logger.getLogger("ScriptMaint");
在执行方法execute()中使用:
logger.debug("William Test LOG!");

到我们配置的log文件中查看,正常输出log信息,测试成功!




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值