log4j配置使用

log4j是Apache开发的比较优秀的开源的日志管理项目。各位小伙伴肯定都会用到这个如此优秀的平台。俗话说:没有买卖就没有伤害,既然使用就难免会遇到各种问题,废话不多讲,霸王硬上弓。

1 在java project项目中使用log4j
小伙伴们在各种地方都能查到如何使用log4j,无非就是把log4j-x.x.x.jar这个jar包加入到项目中,在classpath(src)下写一个log4j.properties文件,加入log4j的一些配置信息。
按套路完成,启动测试类,忽然就发现自己被套路了.
说好的log4j格式呢,连个j都没见到;原因有二。
其一,slf4j-log4j12-x.x.x.jar 包没有加入,
其二,log4j.properties配置文件中

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

这些配置没有。关于slf4j和log4j的配置内容后续再曰。

2 在web项目中使用log4j
上述在java project中的情况就不再赘述。说一下在web项目中可用的其他的一些配置方式,类似于java project的方式足以满足使用。不过在web项目中会出现好多的.xml、.properties的配置文件,放到一个统一的文件夹进行统一管理还是相当好的。所以,这就不满足将log4j.properties放在CLASSPATH路径下的条件,然而,log4j只钟情于CLASSPATH,所以,我们得告诉他白娘子住进雷峰塔了。
一种是没用框架的情况:需要在web.xml加入以下配置

<servlet> 
        <servlet-name>log4j-init</servlet-name> 
        <servlet-class>util.InitLog4j</servlet-class> 

        <init-param> 
            <param-name>log4j-init-file</param-name> 
            <param-value>WEB-INF/classes/config/log4j.properties</param-value> 
        </init-param> 

        <load-on-startup>1</load-on-startup>
    </servlet> 

InitLog4j类:

public class InitLog4j extends HttpServlet {

       private static final long serialVersionUID = 1L;

        public void init() throws ServletException {
           String prefix = getServletContext().getRealPath("/");
           prefix = prefix.replace("//", "\\\\");
           String file = getInitParameter("log4j-init-file");
           String log4jpath = prefix + file;
           if (file != null) {
//             PropertyConfigurator.configure("log4j.properties");
               PropertyConfigurator.configure(log4jpath);
           }
        }
}

第二种情况就是使用spring框架:在web.xml中加入以下配置

<context-param> 
<param-name>log4jConfigLocation</param-name> 
<param-value>WEB-INF/log4j.properties</param-value> 
</context-param> 

<context-param> 
<param-name>log4jRefreshInterval</param-name> 
<param-value>60000</param-value> 
</context-param> 

<listener> 
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
</listener> 

此次,只是总结了一下各种情况下的log4j的配置,至于slf4j、log4j的深入解读,后续再曰…

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值