【问题标题】:External log4j property file with Jetty带有 Jetty 的外部 log4j 属性文件
【发布时间】:2015-02-03 21:00:43
【问题描述】:

我正在将我们的一些 web 应用程序(在 Jetty 中运行)从 log4j 迁移到 slf4j。以前,log4j 会从 jetty.home/resources/log4j.properties 中找到 log4j.properties 文件。移至 slf4j 后,找不到外部 log4j.properties 文件,所有内容都记录到 stderror。

如果我在战争中构建相同的 log4j.properties 文件,一切都会按预期工作(和以前一样)。我究竟做错了什么?我想在 jetty.home/resources 中使用外部日志配置,而不是将其构建到战争中。

在每个 webapp 大战中,我都有 log4j-1.2.17slf4j-api-1.7.10 和 binder slf4j-log4j12-1.7.10

Jetty start.ini 是OPTIONS=Server,jmx,resources,websocket

【问题讨论】:

    标签: log4j jetty slf4j


    【解决方案1】:

    我能够通过将-Dlog4j.debug java 选项添加到启动脚本来解决此问题。在此过程中,我发现 log4j 正在从已添加用于测试的战争中获取 log4j.properties 文件。

    我发现用于解决此问题的两个选项是删除嵌入式配置文件,或添加启动选项。我能够将模块的 log4j 文件移动到它的根目录,以便将它从 maven 构建中排除。这样,它仍然可以在本地使用(用于测试),但没有内置到战争中。

    另一个有效的选项是添加-Dlog4j.configuration=file:resources/log4j.properties 到启动选项。这种方法看起来有点复杂,但会覆盖嵌入的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      • 2013-01-26
      • 2011-04-13
      • 1970-01-01
      相关资源
      最近更新 更多