webAppRootKey作用
2015-12-02 14:40
423 查看
log4j是很好用的一个工具,在目前的WEB项目中经常使用。配上jakarta的common logging和Eclipse的插件Log4E很好用。
不过还是有几个不太方便的地方:
1 Log4j的配置文件修改了之后必须重启才能生效
2 配置文件只能放在WEB-INF/classes
Spring对于Log4j有了更好的增强,配置文件修改后不需要重启,不用再放到WEB-INF/classes目录下。
参数webAppRootKey如果只有一个应用用了Spring对Log4J的增强,则可以不用设置;否则一定要进行设置。
web.xml中webAppRootKey
------------------------------------------------------------------------------------------------
1、 web.xml配置
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>webapp.root</param-value>
</context-param>
"webapp.root"这个字符串可以随便写任何字符串。如果不配置默认值是"webapp.root"。
可以用System.getProperty("webapp.root")来动态获项目的运行路径。
一般返回结果例如:/usr/local/tomcat6/webapps/项目名
定义以后,在Web Container启动时将把ROOT的绝对路径写到系统变量里。
然后log4j的配置文件里就可以用${webName.root }来表示Web目录的绝对路径,把log文件存放于webapp中。
此参数用于后面的“Log4jConfigListener”-->
2、解决以下报错
部署在同一容器中的Web项目,要配置不同的<param-value>,不能重复,否则报类似下面的错误:
Web app root system property already set to different value: 'webapp.root' = [/home/user/tomcat/webapps/project1/] instead of [/home/user/tomcat/webapps/project2/] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!
意思是“webapp.root”这个key已经指向了项目1,不可以再指向项目2.
3、加载方式
Spring通过org.springframework.web.util.WebAppRootListener 这个监听器来运行时的项目路径。
但是如果在web.xml中已经配置了 org.springframework.web.util.Log4jConfigListener这个监听器,
则不需要配置WebAppRootListener了。因为Log4jConfigListener已经包含了WebAppRootListener的功能
一般配置类型下面的例子:
Xml代码
<!-- 加载Log4J 配置文件 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/conf/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>3000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
4、在运行时动态的找出项目的路径
在log4j.properties配置文件,就可以按下面的方式使用${webapp.root}:
log4j.appender.file.File=${webapp.root}/WEB-INF/logs/sample.log
就可以在运行时动态的找出项目的路径
不过还是有几个不太方便的地方:
1 Log4j的配置文件修改了之后必须重启才能生效
2 配置文件只能放在WEB-INF/classes
Spring对于Log4j有了更好的增强,配置文件修改后不需要重启,不用再放到WEB-INF/classes目录下。
参数webAppRootKey如果只有一个应用用了Spring对Log4J的增强,则可以不用设置;否则一定要进行设置。
web.xml中webAppRootKey
------------------------------------------------------------------------------------------------
1、 web.xml配置
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>webapp.root</param-value>
</context-param>
"webapp.root"这个字符串可以随便写任何字符串。如果不配置默认值是"webapp.root"。
可以用System.getProperty("webapp.root")来动态获项目的运行路径。
一般返回结果例如:/usr/local/tomcat6/webapps/项目名
定义以后,在Web Container启动时将把ROOT的绝对路径写到系统变量里。
然后log4j的配置文件里就可以用${webName.root }来表示Web目录的绝对路径,把log文件存放于webapp中。
此参数用于后面的“Log4jConfigListener”-->
2、解决以下报错
部署在同一容器中的Web项目,要配置不同的<param-value>,不能重复,否则报类似下面的错误:
Web app root system property already set to different value: 'webapp.root' = [/home/user/tomcat/webapps/project1/] instead of [/home/user/tomcat/webapps/project2/] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!
意思是“webapp.root”这个key已经指向了项目1,不可以再指向项目2.
3、加载方式
Spring通过org.springframework.web.util.WebAppRootListener 这个监听器来运行时的项目路径。
但是如果在web.xml中已经配置了 org.springframework.web.util.Log4jConfigListener这个监听器,
则不需要配置WebAppRootListener了。因为Log4jConfigListener已经包含了WebAppRootListener的功能
一般配置类型下面的例子:
Xml代码
<!-- 加载Log4J 配置文件 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/conf/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>3000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
4、在运行时动态的找出项目的路径
在log4j.properties配置文件,就可以按下面的方式使用${webapp.root}:
log4j.appender.file.File=${webapp.root}/WEB-INF/logs/sample.log
就可以在运行时动态的找出项目的路径
相关文章推荐
- Android webapp Ajax exception `INVALID_STATE_ERR: DOM Exception 11`
- 图文详解MyEclipse中新建Maven webapp项目的步骤
- SpringMVC加载WebApplicationContext源码分析
- webapp应用Servlet
- WebApp的选择
- webApp用户体验优化——quickClick
- webAPP项目基础知识介绍用html5+css3+js开发
- Mac下利用safari调试 Cordova的WebApp
- webapp开发要点记录
- Eclipse+Maven创建webapp项目
- Cordova webapp archive时候 报错 Cordova/CDVViewController.h f 4000 ile not found
- 开发webapp与普工pc页面的区别
- 开发webapp与普工pc页面有所区别,下面介绍一下开发webapp需要注意哪些内容,做好一下设置,会让你避免不少麻烦
- 通用商品/商家星星评价HTML-支持webapp使用
- 关于web工程中java类如何获取webapp路径下的文件
- Eclipse+Maven创建webapp项目<一>
- webapp font-size解决问题的方案
- PhoneGap创建的安卓WebApp项目如何去除全屏,显示手机顶部状态栏
- 移动WebApp之iScroll插件的使用介绍
- WebApp网站有关meta标签