web.xml中webAppRootKey

日志的配置,有两个参数,第一个参数:log4jConfigLocation 值:classpath:log4j.properties

第二个参数:webAppRootKey   值:SMBMS-NEW.root

不明白这两个参数怎么来的怎么就要配置,下面满足自己的好奇,到底该如何查看源码,重点是为了培养“语感”

 

  首先点进去

org.springframework.web.util.Log4jConfigListener

 

发现有初始化字样的参数initLogging ,所以猜测与它有关(因为web.xml配置的大多数就是为了初始化)再点进initLogging方法中

 

发现了第一个参数log4jConfigLocation 而这个是通过servletContext 中文翻译为servlet的上下文,其实就是包含的内容,用包含内容的servletContext得到参数值

点进setAppRootSystemProperty(servletContext)方法

 

发现这是得到真的路径,

第二个说如果没设置这个参数就默认webapp.root

第三个说用自己写的或者系统默认给的目录做key,而真正的根目录是root 既可以用这个key得到root,所以我们第二参数写不写都行或者随便写,但是最好要遵循规范,体现我们的专业性

所以我们通过阅读源码知道了这两个参数的作用!

补充: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/项目名

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

原文参考:http://elf8848.iteye.com/blog/2008595

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值