【问题标题】:Switching bindings for SLF4J as a runtime scoped dependency in Maven将 SLF4J 的绑定切换为 Maven 中的运行时范围依赖项
【发布时间】:2017-01-18 17:12:14
【问题描述】:

对于 Java,请考虑 Simple Logging Facade (SLF4J)。作为背景,它通过简单的 外观模式 提供 API,其方式是在运行时通过将所需绑定添加到类路径来确定底层日志记录后端。它可能是标准的 java.util.logginglog4jlogbacktinylog

客户端应用程序与日志记录后端的巧妙分离减少了特定应用程序与任何特定日志记录框架之间的耦合。这样可以更轻松地将新实现的客户端与已经选择日志后端的其他项目的现有代码集成。

所以考虑到日志 API SLF4J,编译时你只需要 slf4j-api 并且你应该避免包含任何特定的绑定,比如 slf4j-log4j12 em> 作为 compile 依赖项。

因此,slf4j-log4j12 非常适合作为 runtime 范围的依赖而不是 compile 依赖,因为这将允许您可以在运行时在 slf4j 绑定 之间切换,而无需重新编译应用程序。

问题:在 Maven 项目中,在哪里设置运行时日志框架绑定之间的切换?有什么例子吗?

【问题讨论】:

    标签: maven slf4j


    【解决方案1】:

    免责声明:我是SLF4J的作者

    尽管文档谈到在运行时更改日志后端,SLF4J 允许在构建时而不是在运行时切换日志后端。

    【讨论】:

    • 部署时间可能是对日志后端设置时间的更准确描述:在构建时间之后(因为您可以在不修改项目 jar 的情况下换出日志后端)但在运行时之前(一旦虚拟机开始运行,你就会被你当时拥有的任何后端所困)。
    猜你喜欢
    • 2013-10-01
    • 1970-01-01
    • 2023-03-04
    • 2013-03-25
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多