Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口 服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就 是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

其实呢,我觉得他就是一个能对我们的WEB应用监控的组件,让我们可以了解到我们的程序运行的情况 ,以及出错后的相关记录。

我在用的时候报了一个错误

  1. 严重: Exception sending context initialized event to listener instance of class org.springframework.web.util.Log4jConfigListener
  2. java.lang.IllegalStateException: Web app root system property already set to different value: 'webapp.root' = [D:\MyEclipseProject\.metadata\.me_tcat\webapps\ReservationSystem\] instead of [D:\MyEclipseProject\.metadata\.me_tcat\webapps\SpringMVCDemo\] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!

我们来看一下Log4j的配置:

  1. log4j.rootLogger=INFO, stdout, logfile
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
  3. log4j.appender.stdout.layout=org.apache.log4j.HTMLLayout
  4. #log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
  5. log4j.appender.stdout.layout.ConversionPattern=- %m%n
  6. log4j.appender.logfile=org.apache.log4j.RollingFileAppender
  7. log4j.appender.logfile.File=${webapp.root}/webapp.html
  8. log4j.appender.logfile.MaxFileSize=512KB
  9. # Keep three backup files.
  10. log4j.appender.logfile.MaxBackupIndex=3
  11. # Pattern to output: date priority [category] - message
  12. log4j.appender.logfile.layout=org.apache.log4j.HTMLLayout
  13. log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
  14. log4j.logger.com.opensymphony.xwork2=ERROR
  15. # Control logging for other open source packages
  16. log4j.logger.org.springframework=ERROR
  17. log4j.logger.org.quartz=ERROR
  18. log4j.logger.net.sf.ehcache=ERROR
  19. log4j.logger.net.sf.navigator=ERROR
  20. log4j.logger.org.apache.commons=ERROR
  21. log4j.logger.org.apache.struts=ERROR
  22. log4j.logger.org.hibernate=DEBUG
  23. # Struts OgnlUtil issues unimportant warnings
  24. log4j.logger.com.opensymphony.xwork2.util.OgnlUtil=error
  25. log4j.logger.com.opensymphony.xwork2.ognl.OgnlValueStack=error

发现没有什么问题啊,但是,请注意${webapp.root}这个变量 ,对照着错误提示大概看了一下,意思是说Web应用程序根系统属性已经被设置,说白了就是说'webapp.root' 这个配置名称已经被使用了,不能再用这个了,

并且也提示了Choose unique values for the 'webAppRootKey' context-param in your web.xml files ,也就是说我们可以在web.xml里配置一个唯一的'webAppRootKey' ,这样就不会冲突了。

这个问题会出现在一个WEB服务器同时部署多个使用了Log4j的应用上,如果配置不当,出这个错误还真会让你郁闷到抓狂。我就是出这个问题了,一个Tomcat部署了2个使用了Log4j的项目。

然后我这样解决:按给的提示在web.xml里加上

  1. <context-param>
  2. <param-name>webAppRootKey</param-name>
  3. <param-value>myapp.root</param-value>
  4. </context-param>

然后在 log4j.properties里就写成${myapp.root},只要这个名称不重复,就不会产生Web app root system property already set to different value的错误了。虽然正式使用时一台服务器部署多个应用程序的情况会比较少,但是还是保险起见吧,也对我们的程序相关的命名标准化吧,把

${webapp.root}改成${[应用程序].root},这是个好习惯。

java.lang.IllegalStateException:Web app root system property already set to different value 错误原因及解决 Log4j的更多相关文章

  1. Web app root system property already set to different value 错误原因及解决

    http://yzxqml.iteye.com/blog/1761540 ——————————————————————————————————————————————————————————————— ...

  2. java.lang.IllegalStateException: Web app root system property already set to different value

    webAppRootKey是在java web项目的web.xml配置文件中表示项目的唯一标示,在Eclipse调试Web项目时,项目的路径是一个临时路径,不在真正的路径下,可以通过log4j日志的方 ...

  3. IllegalStateException : Web app root system property already set to different value问题详解

    一.问题描述     最近公司有了一个新项目,这个项目最近部署到测试服务器上的时候出现了一个问题. 严重: Exception sending context initialized event to ...

  4. 解决tomcat部署多个虚拟机时报IllegalStateException: Web app root system property already set to 的问题

    解决tomcat部署多个虚拟机时报IllegalStateException: Web app root system property already set to 的问题 在web.xml中添加如 ...

  5. Web app root system property already set to different value: 'webapp.root'

    java.lang.IllegalStateException: Web app root system property already set to different value: 'webap ...

  6. Cannot set web app root system property when WAR file is not expanded

    Cannot set web app root system property when WAR file is not expanded 在tomcat下面可以,在weblogic下面不行的处理方法 ...

  7. idea调试SpringMvc, 出现:”javax.servlet.ServletException: java.lang.IllegalStateException: Cannot create a session after the response has been committed"错误的解决方法

    调试拦截器出现以下错误: HTTP Status 500 - javax.servlet.ServletException: java.lang.IllegalStateException: Cann ...

  8. java.lang.IllegalStateException: Cannot run without an instance id.

    启动springboot,报错:quartz集群报错: Sep 09, 2016 5:33:47 AM org.apache.catalina.core.ApplicationContext log ...

  9. Eclipse------使用Debug As时报错java.lang.IllegalStateException: Failed to read Class-Path attribute from manifest of jar file:/XXX

    报错信息: java.lang.IllegalStateException: Failed to read Class-Path attribute from manifest of jar file ...

随机推荐

  1. 常用的一些SQL语句整理,也许有你想要的。

    本篇文章是对一些常用的sql语句进行了总结与分析,需要的朋友参考下,也许会有你需要的. 1.SQL行列转换 问题:假设有张学生成绩表(tb)如下:姓名 课程 分数张三 语文 74张三 数学 83张三 ...

  2. C# 字典 Dictionary 转 JSON 格式遍历

    键值对 直接 遍历就行 var str = "{\"22222\":\"DL00019\",\"123\":\"DL00 ...

  3. Microsoft.Practices.Unity入门

    Unity是微软Patterns & Practices团队所开发的一个轻量级的,并且可扩展的依赖注入(Dependency Injection)容器,它支持常用的三种依赖注入方式:构造器注入 ...

  4. Java--Semaphore控制并发线程数量

    package com; import java.util.concurrent.Semaphore; /** * Created by yangyu on 16/11/28. */ /** * Se ...

  5. [python拾遗]异常处理

    异常 异常(Exception)是因为程序的例外.违例.出错等情况而在正常控制流以外采取的行为,一般分为如下两个阶段: 1.异常发生:一个错误发生后被打印出来,称为未处理异常,而默认的处理则是自动输出 ...

  6. [转载]OSI七层模型详解

    OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输 . 完成中继功能的节点通常称为中继系统.在OSI七层模型中,处于 ...

  7. 【GOF23设计模式】观察者模式

    来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_观察者模式.广播机制.消息订阅.网络游戏对战原理 package com.test.observer; import ja ...

  8. FormsAuthentication身份认证源代码

    使用FormsAuthentication类可以实现身份认证功能,这里提供一个asp.net项目的源代码,项目名称KWS.项目实现了登录.退出和判断身份的功能. 关于项目 点击这里下载源代码 http ...

  9. JavaScript 使用反斜杠对代码行进行折行

    JavaScript对代码行进行折行-使用反斜杠 您可以在文本字符串中使用反斜杠对代码行进行换行.下面的例子会正确地显示: <html> <head> <script t ...

  10. arcgis破解的时候,不能启动license manager的问题

    1.防火墙没关:(非常重要) 2.win+R,调出控制台,输入services.msc.然后手动开启ArcGIS license manager服务,关闭其余类似erdas,matlab影响该服务的开 ...