禁止所有 Logback 输出到控制台?

新手上路,请多包涵

我如何配置 Logback 以禁止其所有输出到控制台(标准输出)?特别是,我希望抑制(或重定向)Logback 自己的日志消息,例如:

 16:50:25,814 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could NOT find resource [logback-test.xml]
16:50:25,814 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found resource [logback.xml] at [file:/opt/dap/domains/ap0491/uat1/domain/instance-config/logback.xml]
16:50:25,816 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs multiple times on the classpath.
16:50:25,816 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [file:/opt/dap/domains/ap0491/uat1/domain/instance-config/logback.xml]
16:50:25,816 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource [logback.xml] occurs at [file:/opt/dap/domains/ap0491/uat1/domain/instance-config/logback.xml]
16:50:25,923 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction - debug attribute not set
16:50:25,924 |-INFO in ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter@1a15291 - Will scan for changes in file [/opt/dap/domains/ap0491/uat1/domain/instance-config/logback.xml] every 60 seconds.

我需要禁用所有日志记录到标准输出,因为我们的生产环境不允许应用程序将任何消息打印到标准输出。

注意我使用的是 Logback 0.9.21、SLF4J 1.6.0,我们的应用程序在 WebLogic 10.3.2 中运行。

原文由 Derek Mahar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

Holger Hoffstätte 的 诊断 是正确的,即重复的类路径条目消息是 Logback 如何计算类路径条目的 错误 的症状。 Robert Elliot 还在 Logback 用户邮件列表 的一个 线程描述 了这个问题。根据 Robert 和其他人在 SLF4J 邮件列表上的相关讨论中的说法,当使用 Logback 的应用程序在 WebLogic 容器中运行时,由于 WebLogic 类加载器的操作方式,Logback 报告 logback.xml 的重复类路径条目配置文件。然而,无论 WebLogic 类加载器是否应该只报告唯一的类路径条目,Logback 肯定应该只计算唯一的类路径条目,这样它就不会打印这个令人困惑的虚假消息。

我已经为 LBCLASSIC-159 实施了一个 修复程序,它基本上按照 Robert Elliot 的建议执行并使用一个集合而不是一个列表来保存类加载器返回的资源,从而有效地消除了任何重复的类路径资源。我已经使用 Logback 0.9.24、SLF4J 1.6.1 和 WebLogic 10.3.2 成功测试了修复。正如 Thorbjørn 在他的 回答 中预测的那样,有了这个修复,Logback 不再向标准输出显示重复的类路径条目状态消息(或任何其他信息性消息)。

我希望维护人员将我的修复程序集成到主 Logback 源代码存储库 中,并将其包含在下一个版本中。

原文由 Derek Mahar 发布,翻译遵循 CC BY-SA 3.0 许可协议

这些消息仅在以下至少一项为真时才会显示:

  • 您在 logback.xml 文件中启用了调试
  • 您的配置有误。这里就是这种情况 - logback 抱怨找到多个配置文件。
  • 如果您的环境提供冲突文件,则存在类路径问题。 (昨天我想到了这个,这是这个问题的真正原因)。
  • (logback 中有一个错误 - 已经发生)

更正问题,这些消息应该会消失。

原文由 Thorbjørn Ravn Andersen 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题