使用accesslogvalve dir的环境变量
问题描述:
我想从setenv.bat中的值填充accesslogvalve中的“dir”。 例如:使用accesslogvalve dir的环境变量
<Valve
className="org.apache.catalina.valves.AccessLogValve"
directory="${my.logs.dir}"
prefix="access_log"
fileDateFormat="yyyy-MM-dd.HH"
suffix=".log"
pattern="%t %H cookie:%{SESSIONID}c request:%{SESSIONID}r %m %U %s %q %r"/>
我在setenv.bat规定 “my.logs.dir”
set my.logs.dir=C:\xyz\abc
当我启动Tomcat,我看到一个文件夹$ {my.logs.dir }在tomcat下安装。问题是,当tomcat启动时,$ {my.logs.dir}不会被env变量所取代。如果我给硬编码价值如dir="C:\xyz\abc"
,它工作正常。
任何人都可以指导我用服务器启动时的环境值替换$ {my.logs.dir}吗?
谢谢
答
我不认为Tomcat配置文件中的默认环境变量是可用的。系统属性,但是,。因此,如果您将变量添加为系统属性而不是环境变量,则应该可以工作。
如果你因为某些原因绝对要使用环境变量,Tomcat文档具有替代物业参考在它是可以被设置为自定义Tomcat的行为部分约System Properties:
org.apache.tomcat .util.digester。 PROPERTY_SOURCE
将此设置为实现org.apache.tomcat.util.IntrospectionUtils.PropertySource的类的完全限定名称。需要有一个没有参数的公共构造函数。
使用它来添加属性源,当在Tomcat解析的XML文件中找到$ {parameter}表示的参数时,将会调用该属性源。
感谢NilsH我将探索Propery_source选项。 – 2013-04-11 14:49:58