代码之家  ›  专栏  ›  技术社区  ›  brad

warbler config.java_类和log4j.properties

  •  2
  • brad  · 技术社区  · 15 年前

    我正在打包一个带有Warbler的Rails应用程序,我需要特定于应用程序的日志记录。我已经将log4j和commons loggin jar添加到WEB-INF/lib目录中,并希望将log4j.properties添加到WEB-INF/classes目录中。问题是,我还需要特定于环境的日志记录,因此我的登台/生产使用的属性(即信息而不是调试)与我的devel不同。我不能只做一个:

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

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

    2 回复  |  直到 15 年前
        1
  •  3
  •   brad    15 年前

    最后的答案。Rails_env似乎在Warbler中不起作用,但通过 docs 在warble配置中,有一个包含rails.env的webxml属性,修改我的代码以提取文件,如下所示:

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

    工作得很有魅力!

        2
  •  0
  •   brad    15 年前

    我想我应该在warble文件中进一步阅读。您可以为Java_类配置路径映射。我用的是:

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

    我发现的唯一问题是,这实际上不再将log4j.properties放在WEB-INF/classes目录中了。现在把它放在根上。奇怪的是,它在文档中特别提到:

    定义Java类应该如何复制到Web-INF/类中的一个或多个路径图

    我不认为必须手动添加WEB-INF/类路径,但我确实添加了。因此,最后,这项工作:

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

    使用lib/properties目录中的log4j.properties.rails_env_