1

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

我的项目设置是带有 Jersey 作为 REST API 的 Jetty,没有 Spring。

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

解决这个问题的最佳方法是什么,以便在 web.xml 或 ant 构建中,可以自定义定义 log4j 配置?

非常感谢!

编辑:我认为我可以启动另一个定义了一些 init-param 的 servlet。然后在一个单独的 HttpServlet 实现上设置 PropertyConfigurator.configure([name of the log4j config]); 这是添加一个 servlet 的一种理想的处理方式吗?

4

1 回答 1

0

很多不同的方法来处理这个。

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

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

java -jar start.jar OPTIONS=服务器,jmx,jsp,resources-[dev,qa,prod]

干杯

于 2012-10-31T00:43:43.210 回答