2009-12-17 43 views
2

我正在用莺打包一个rails应用程序,我想要特定于应用程序的日志记录。我已经将log4j和commons-loggin jar添加到了WEB-INF/lib目录,并且我想将log4j.properties添加到WEB-INF/classes目录。问题是,我也想环境特定的日志记录,所以我的分段/生产使用不同的属性(即INFO而不是DEBUG)比我的devel。我不能只是做一个:Warbler config.java_classes和log4j.properties

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

因为Tomcat的似乎寻找特定文件log4j.properties。有没有什么办法让鸣鸟重新命名为log4j.properties?还是有更好的应用程序特定的,特定于环境的日志记录机制?

回答

3

而对于最后的答案:那么最后的话,这个工作。 RAILS_ENV似乎并不莺工作,而是通过docs上啭配置看,有一个包含rails.env,修改我的代码的文件拉到像webxml属性:

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

工作就像一个魅力!

+0

很高兴您能为自己找出答案!你回答自己的问题得到更多积分吗? – 2010-01-27 17:43:01

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路径,但我做到了。使用文件log4j.properties

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

#{} RAILS_ENV在lib/properties目录

+0

从头开始。看起来Warbler没有正确地获得rails_env,我正在使用warbler(0.9.14)。在我的cap部署中,我适当地设置了rails_env,不知道这里发生了什么,但总是得到log4j.properties.development – brad 2009-12-17 18:47:31