2

我正在用 warbler 打包一个 rails 应用程序,我想要应用程序特定的日志记录。我已将 log4j 和 commons-loggin jar 添加到 WEB-INF/lib 目录,我想将 log4j.properties 添加到 WEB-INF/classes 目录。问题是,我还想要特定于环境的日志记录,所以我的登台/生产使用与我的开发不同的属性(即信息而不是调试)。我不能只做一个:

config.java_classes = FileList["lib/log4j-#{RAILS_ENV}.properties"]

因为 Tomcat 似乎在寻找特定的文件log4j.properties。有没有办法让莺重命名这个文件到 just log4j.properties?或者是否有更好的机制用于特定于应用程序、特定于环境的日志记录?

4

2 回答 2

3

而对于最终的答案。RAILS_ENV 似乎在 warbler 中不起作用,但是查看 warble config 上的文档,有一个包含 rails.env 的 webxml 属性,修改我的代码以提取文件,如:

config.java_classes = FileList["lib/properties/log4j.properties.#{config.webxml.rails.env}"]

像魅力一样工作!

于 2009-12-17T20:05:33.600 回答
0

我想我应该在 warble 文件本身中进一步阅读。您可以为 java_classes 配置路径图。这是我使用的:

config.java_classes = FileList["lib/properties/log4j.properties.#{RAILS_ENV}"]
config.pathmaps.java_classes << "%n"

我发现的唯一问题是这实际上并没有将 log4j.properties 放在 WEB-INF/classes 目录中。它现在将它放在根目录中。它在文档中明确说明似乎很奇怪:

一个或多个路径图,定义应如何将 java 类复制到 WEB-INF/classes

我认为我不必手动添加该 WEB-INF/classes 路径,但我做到了。所以最后,这行得通:

config.java_classes = FileList["lib/properties/log4j.properties.#{RAILS_ENV}"]
config.pathmaps.java_classes << "WEB-INF/classes/%n"

使用 lib/properties 目录中的文件 log4j.properties.#{RAILS_ENV}

于 2009-12-17T18:35:19.900 回答