【问题标题】:how to define multiple log4j configs with Jetty server in web.xml如何在 web.xml 中使用 Jetty 服务器定义多个 log4j 配置
【发布时间】:2012-10-16 04:47:46
【问题描述】:

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

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

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

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

非常感谢!

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

【问题讨论】:

    标签: log4j jetty config web.xml


    【解决方案1】:

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

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

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

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

    干杯

    【讨论】:

      猜你喜欢
      • 2021-05-19
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 2019-09-09
      • 2010-11-03
      相关资源
      最近更新 更多