【发布时间】:2017-01-18 17:12:14
【问题描述】:
对于 Java,请考虑 Simple Logging Facade (SLF4J)。作为背景,它通过简单的 外观模式 提供 API,其方式是在运行时通过将所需绑定添加到类路径来确定底层日志记录后端。它可能是标准的 java.util.logging、log4j、logback 或 tinylog。
客户端应用程序与日志记录后端的巧妙分离减少了特定应用程序与任何特定日志记录框架之间的耦合。这样可以更轻松地将新实现的客户端与已经选择日志后端的其他项目的现有代码集成。
所以考虑到日志 API SLF4J,编译时你只需要 slf4j-api 并且你应该避免包含任何特定的绑定,比如 slf4j-log4j12 em> 作为 compile 依赖项。
因此,slf4j-log4j12 非常适合作为 runtime 范围的依赖而不是 compile 依赖,因为这将允许您可以在运行时在 slf4j 绑定 之间切换,而无需重新编译应用程序。
问题:在 Maven 项目中,在哪里设置运行时日志框架绑定之间的切换?有什么例子吗?
【问题讨论】: