2012-11-27 52 views
1

我有一个Java Web应用程序,它使用初始化/配置Velocity的库。更改上游项目中的速度日志文件位置

我们正在将此项目从WebLogic迁移到Tomcat。

该应用程序现在抛出错误,追溯到速度。当Velocity初始化时,日志文件的默认位置位于应用程序无权写入的目录中,因此Velocity从不初始化。

我试图在我的WEB-INF/classes目录的上游项目中创建一个velocity.properties文件(镜像Velocity jar文件本身的文件夹结构),但这似乎没有改变任何东西。 Velocity仍然无法初始化。

有谁知道一种方法来完成我所描述的?我不想触摸正在初始化Velocity的库。我宁愿重写上游项目中的日志文件位置。

+1

覆盖类路径上的文件依赖于类路径解析,您往往无法控制它。如果库使用硬编码位置,并且无法使用正常日志配置更改它,那么我不确定如果库没有用于在外部定义事件的机制,则可以可靠地对其进行更改。 –

回答

1

在您的WEB-INF目录中查看web.xml并查找<param-name>configURI</param-name>及其后面的<param-value>

例如我的web.xml有这个

<init-param> 
    <param-name>configURI</param-name> 
    <param-value>WEB-INF/scripts</param-value> 
</init-param> 

在我的WEB-INF /脚本是我的velocity.properties文件

这是控制在日志中velocity.properties属性文件位置

runtime.log = 

它指定到我的velocity.log的完整路径

Mine看起来像这样

runtime.log =/var/log/velocity.log 
+0

感谢Tad的建议,但是我没有使用/配置Java servlets。 –

+0

@ZacharyCarter我刚刚使用我的设置作为示例来显示我的velocity.properties文件是“WEB-INF/scripts”还是“WEB-INF/classes”。一旦找到安装程序正在读取的配置/属性文件的目录,可以将velocity.properties文件放在该目录中,并希望有更好的运气让它初始化。 – Tad