Log4jConfigListener介绍

使用spring中的Log4jConfigListener有如如下好处: 
   1. 动态的改变记录级别和策略,不需要重启Web应用,如《Effective Enterprise Java》所说。 
   2. 把log文件定在 /WEB-INF/logs/ 而不需要写绝对路径。 
因为 系统把web目录的路径压入一个叫webapp.root的系统变量。这样写log文件路径时不用写绝对路径了. 
log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log 
   3. 可以把log4j.properties和其他properties一起放在/WEB-INF/ ,而不是Class-Path。 
   4.log4jRefreshInterval为6000表示 开一条watchdog线程每6秒扫描一下配置文件的变化; 
   在web.xml 添加

[html] view plaincopy

  1. <context-param>
  2. <param-name>log4jConfigLocation</param-name>
  3. <param-value>WEB-INF/log4j.properties</param-value>
  4. </context-param>
  5. <context-param>
  6. <param-name>log4jRefreshInterval</param-name>
  7. <param-value>6000</param-value>
  8. </context-param>
  9. <listener>
  10. <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  11. </listener>

 在使用spring先后开发了两个模块,单独测试都正常。也先后上线运行,之后发现有个模块在启动Tomcat后总是初始化失败,必须到tomcat管理控制台手动启动。找了半天也没发现原因。后来管理员在每次重启Tomcat后这个模块没有运行导致一堆问题和麻烦,今天特意查看了其他的tomcat日志文件,终于发现了问题所在,原来是Log4jConfigListener。使用它是为了随时调整打印日志的级别而不用重启服务。没想到没有享受到它的便利,反而出了一堆问题,只能怪自己没有稍微仔细研究一下。 
web.xml

[html] view plaincopy

  1. <context-param>
  2. <param-name>webAppRootKey</param-name>
  3. <param-value>cang.qing6.com.root</param-value>
  4. </context-param>
  5. <context-param>
  6. <param-name>log4jConfigLocation</param-name>
  7. <param-value>/WEB-INF/classes/log4j.properties</param-value>
  8. </context-param>
  9. <context-param>
  10. <param-name>log4jRefreshInterval</param-name>
  11. <param-value>6000</param-value>
  12. </context-param>
  13. <listener>
  14. <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  15. </listener>
  16. <context-param>
  17. <param-name>webAppRootKey</param-name>
  18. <param-value>cang.qing6.com.root</param-value>
  19. </context-param>
  20. <context-param>
  21. <param-name>log4jConfigLocation</param-name>
  22. <param-value>classpath:log4j.properties</param-value>
  23. </context-param>
  24. <context-param>
  25. <param-name>log4jRefreshInterval</param-name>
  26. <param-value>6000</param-value>
  27. </context-param>
  28. <listener>
  29. <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
  30. </listener>

log4j.properties配置

[html] view plaincopy

  1. layoutPattern=[%d{HH:mm:ss}] %-5p : %m%n
  2. log.file=${message.web.root}/logs/app.log
  3. log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
  4. log4j.appender.logfile.File=${log.file}
  5. log4j.appender.logfile.Append=true
  6. log4j.appender.logfile.DatePattern=‘.‘yyyyMMdd
  7. log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
  8. log4j.appender.logfile.layout.ConversionPattern=${layoutPattern}
  9. layoutPattern=[%d{HH:mm:ss}] %-5p : %m%n
  10. log.file=${message.web.root}/logs/app.log
  11. log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
  12. log4j.appender.logfile.File=${log.file}
  13. log4j.appender.logfile.Append=true
  14. log4j.appender.logfile.DatePattern=‘.‘yyyyMMdd
  15. log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
  16. log4j.appender.logfile.layout.ConversionPattern=${layoutPattern}

其实需要注意的地方就是应用服务器下有不止一个的应用在使用spring的Log4jConfigListener需要修改web环境中webAppRootKey值(这个值其实是web应用的根目录在环境变量名,这样在log4j配置文件中如果有相对web目录的路径就不用写死了)。 
否则两个默认值web.root在环境变量中就会有冲突导致第二个应用启动失败。

时间: 2024-08-01 22:42:58

Log4jConfigListener介绍的相关文章

maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener

本篇文章主要介绍了"maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener ",主要涉及到maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener 方面的内容,对于maven web 项目中启动报错jav

Spring 配置log4j和简单介绍Log4J的使用

Log4j 是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务器.NT的事 件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就 是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 如此强大的优越性,实际上手并不难,尤其在spring框架下,使用log4j更是容易,下面介绍一下spri

(转)log4j使用介绍

原文出自: log4j使用介绍 日志是应用软件中不可缺少的部分,Apache的开源项目Log4j是一个功能强大的日志组件,提供方便的日志记录.以下是个人经验,具体请参考Log4j文档指南. Log4j下载 在apache网站:http://logging.apache.org/log4j/1.2/download.html 可以免费下载到Log4j最新版本的软件包. Log4j使用 Log4j的包下载完成后,解压,将其中打包好的的log4j-1.x.x.jar导入你的工程lib中.Log4j之所

struts2+spring+mybatis框架整合详细介绍

一.问题的提出 最近一直在看各种主流javaweb框架,感触颇深,一个好的框架可以让你的程序代码变得相当的明了,也便于后期的维护!目前用到的主流框架包括struts2+spring+mybatis和spring+springmvc+mybatis(注:个人觉得mybatis框架很好用,所以框架基本都会选择用mybatis).其实很多的小伙伴都想自己配置个框架,但是基于怕报错啊.引入jar包.程序调试啊等等问题都放弃了!基于这个现象,本人在这里就详细的介绍下本人配置框架的详细过程,希望对读者有所帮

Spring的Log4J配置器Log4jWebConfigurer介绍

1. Logj4简介 Log4j是Apache大旗下的一个子项目,它可以用来重定向应用日志文件的输出流,无论我们想将日志文件输出到控制台还是网络还是其他地方,都可以通过logj4来配置,如果我们的应用里面引入的Spring框架技术,我们可以通过Spring来初始化logj4的配置文件信息,下面2,3节是对Spring文档的一些翻译第4节是作者自己对一些问题的看法: 2. Log4jWebConfigurer及主要配置参数 Log4jWebConfigurer是一个方便的自定义log4j web环

6、jsp和servlet在xml得映射和web.xml介绍

本身肯定会学的东西,今天想起来了,那就记一下吧. 做那个后端的界面时候,有人反应不要hou.jsp,说设个路由随便编乱点,别人猜不到.我也没听懂设个路由是什么意思. 最后一想,这不就是个jsp映射嘛. jsp映射和servlet映射就一条不同,servlet还可以通过@WebServlet(“”)方法. 顺便转载一下web.xml的介绍,方便以后查看 转载自:http://blog.csdn.net/believejava/article/details/43229361 Web.xml详解:

数据库介绍与分类

目录 数据库介绍与分类... 1 1.1 数据库介绍... 2 1.1.1什么是数据库... 2 1.2数据库的种类... 2 1.2.1关系型数据库介绍... 2 1.2.2非关系型数据库介绍... 3 1.3 常用关系型数据库产品介绍... 4 1.3.1 Oracle数据库... 4 1.3.2 MySQL数据库... 5 1.3.3 MariaDB数据库... 5 1.3.4 SqlServer数据库... 6 1.3.5 Access数据库... 6 1.3.6 其他不常用数据库...

基于位置信息的聚类算法介绍及模型选择

百度百科 聚类:将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类.由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异."物以类聚,人以群分",在自然科学和社会科学中,存在着大量的分类问题.聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法.聚类分析起源于分类学,但是聚类不等于分类.聚类与分类的不同在于,聚类所要求划分的类是未知的. 分类和聚类算法一直以来都是数据挖掘,机器学习领域的热门课题,因此产生了众多的

Centos 7.3下 Linux For SQL Server安装及配置介绍

Centos 7.3下Linux For SQL Server安装及配置介绍 说到SQL Server服务,我们大家都知道是Microsoft公司的数据库服务,当然说到数据库,现在主要分为三大商:1:Oracle.2:Msql Server.3:Mysql:三种数据库在当下环境受到不了不同程度的关注:比如oracle主要应用到大型的商业比较多,比如银行:SQL Server主要在常见的互联网公司使用:mysql主要应用于小型的企业或者服务商使用:当然从费用上来说,Oracle是最贵的,也是最为稳