如何使用web.xml中的Jetty server定义多个log4j配置

如何使用web.xml中的Jetty server定义多个log4j配置,log4j,jetty,config,web.xml,Log4j,Jetty,Config,Web.xml,以下是我想做的: -能够为每个不同的部署“war”分离log4j.properties -能够使用系统参数在ant build或web.xml中定义要使用的日志属性 我的项目设置是Jetty,Jersey作为RESTAPI,没有Spring 我做了一些研究,发现webl.xml中还有其他Spring解决方案,但我没有使用Spring。 我也知道Jetty正在使用slf4j,但如果切换到slf4j,我能更轻松地做到这一点吗 解决这个问题的最佳方法是什么,以便在web.xml或ant build中定

以下是我想做的: -能够为每个不同的部署“war”分离log4j.properties -能够使用系统参数在ant build或web.xml中定义要使用的日志属性

我的项目设置是Jetty,Jersey作为RESTAPI,没有Spring

我做了一些研究,发现webl.xml中还有其他Spring解决方案,但我没有使用Spring。 我也知道Jetty正在使用slf4j,但如果切换到slf4j,我能更轻松地做到这一点吗

解决这个问题的最佳方法是什么,以便在web.xml或ant build中定制log4j config

非常感谢

编辑: 我想我可以用一些init参数启动另一个servlet。然后在一个单独的HttpServlet实现上设置PropertyConfigurator.configure([log4j配置的名称]);
添加一个servlet是处理这个问题的理想方法吗?

有很多不同的方法来处理这个问题

由于您的任务不是每个Servlet或每个Webapp的日志记录不同……我不会在Servlet或Webapp位置解决问题,而是在服务器级别解决问题。对我来说,您希望将所有这些信息记录到正确的位置,而不仅仅是部署servlet后的所有信息。为此,我将在jetty中启用slf4j api支持,然后从slf4j方面研究处理该问题的最佳方法。有了它,你可以使用任何你想要的日志框架,slf4j simple,log4j或logback..任何你喜欢的

或者,如果您真的想避免服务器端的日志记录,我想您可以在resources目录中使用log4j.properties文件,然后在jetty启动时在命令行上提供不同的resources目录。找出您想要的选项并使用以下选项启动:

java-jar start.jar OPTIONS=Server、jmx、jsp、resources-[dev、qa、prod]

干杯