在Maven中将SLF4J的绑定切换为运行时范围的依赖项

在Maven中将SLF4J的绑定切换为运行时范围的依赖项,maven,slf4j,Maven,Slf4j,想一想如何使用Java。作为后台,它通过一个简单的facade模式提供一个API,其方式是在运行时通过向类路径添加所需的绑定来确定底层日志后端。它可能是标准的java.util.logging、log4j、logback或tinylog 客户机应用程序与日志后端的整洁分离减少了特定应用程序和任何特定日志框架之间的耦合。这可以更容易地将新实现的客户机与已经选择了日志后端的其他项目的现有代码集成 因此,考虑到日志API SLF4J,对于编译,您只需要SLF4J API,并且应避免将任何特定绑定(如S

想一想如何使用Java。作为后台,它通过一个简单的facade模式提供一个API,其方式是在运行时通过向类路径添加所需的绑定来确定底层日志后端。它可能是标准的java.util.logging、log4j、logback或tinylog

客户机应用程序与日志后端的整洁分离减少了特定应用程序和任何特定日志框架之间的耦合。这可以更容易地将新实现的客户机与已经选择了日志后端的其他项目的现有代码集成

因此,考虑到日志API SLF4J,对于编译,您只需要SLF4J API,并且应避免将任何特定绑定(如SLF4J-log4j12)作为编译依赖项

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

问题:在Maven项目中,运行时在日志框架绑定之间的切换在哪里设置?有什么例子吗?免责声明:我是SLF4J的作者

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

免责声明:我是SLF4J的作者


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

部署时间可能是设置日志后端的更准确描述:在构建时之后,您可以在不修改项目jar的情况下交换日志后端,但在运行时之前,一旦VM运行,在这一点上,无论您拥有什么样的后端,您都会被卡住。部署时间可能是对日志后端设置时间的更准确描述:在构建时间之后,因为您可以在不修改项目jar的情况下交换日志后端,但在VM运行之前,在这一点上,无论你有什么后端,你都会被卡住。