这就是我想要做的事情: - 能够为每个不同的部署“war”分离log4j.properties - 能够使用要使用的日志属性的系统参数在ant build或web.xml中定义。
我的项目设置是Jetty,Jersey作为REST API,没有Spring。
我做了一些研究,转而在webl.xml中设置其他Spring解决方案,但我没有使用spring。 我也知道Jetty正在使用slf4j但是如果切换到slf4j,我能否更容易地做到这一点?
解决这个问题的最佳方法是什么,以便在web.xml或ant build中,可以自定义log4j配置?
非常感谢!
编辑: 我想我可以用一些init-param定义启动另一个servlet。然后在一个单独的HttpServlet实现上设置PropertyConfigurator.configure([log4j config的名称]); 这是否是添加一个servlet的理想方式?
答案 0 :(得分:0)
有很多不同的处理方法。
由于您的任务不是每个Servlet或每个Webapp的不同日志记录......我不会在servlet或webapp位置解决问题,而是在服务器级别解决问题。对我而言,您希望将所有这些信息记录到正确的位置,而不仅仅是部署servlet后的所有信息。为此,我将在jetty中启用slf4j-api支持,然后查看从slf4j方面处理该问题的最佳方法。有了这个,你可以使用你想要的任何日志框架,slf4j-simple,log4j或logback ..无论你喜欢什么。
或者,如果你真的想避免服务器端的日志记录,我想你可以在资源目录中使用log4j.properties文件,然后在命令行上的jetty启动时提供不同的资源目录。找出您想要和启动的选项:
java -jar start.jar OPTIONS = Server,jmx,jsp,resources- [dev,qa,prod]
欢呼声