`
Johnny_GZ
  • 浏览: 176403 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

在Web项目中配置Log4j

 
阅读更多

在Web项目中配置Log4j

  

   1. 动态的改变记录级别和策略,不需要重启Web应用,如《Effective Enterprise Java》所说。

    2. 把log文件定在 /WEB-INF/logs/ 而不需要写绝对路径。

   3. 可以把log4j.properties和其他properties一起放在/WEB-INF/ ,而不是Class-Path。

   在web.xml 添加

    <!--如果不定义webAppRootKey参数,那么webAppRootKey就是缺省的"webapp.root"-->   

    <context-param>

        <param-name>webAppRootKey</param-name>

        <param-value>xxx.root</param-value>

    </context-param>

    <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>

     在上文的配置里,Log4jConfigListener会去WEB-INF/log4j.propeties 读取配置文件;

     开一条watchdog线程每60秒扫描一下配置文件的变化;

     并把web目录的路径压入一个叫webapp.root的系统变量。

     然后,在log4j.properties 里就可以这样定义logfile位置

         log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log 

     如果有多个web应用,怕webapp.root变量重复,可以在context-param里定义webAppRootKey。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics