假设您有一个Web应用程序,您正在使用自己的自定义slf4j实现。 但由于某些性能原因,您希望将自定义slf4j实现切换到任何slf4j实现(如log4j / logback等)一段时间。
一种方法是你可以从类路径中删除自定义的slf4j jar并添加任何log4j / logback jar并重新部署应用程序。
但是我们可以在运行时更改吗?
答案 0 :(得分:0)
不幸的是,这对slf4j来说是不可能的,除了可能有一些极端的Java反射hackery。
要实现它,您需要在类路径上使用多个slf4j实现jar。但是slf4j预计会出现一个实现。如果找到多个,它会输出一条警告消息并选择它找到的第一个消息。选择哪种实现很难预测,因为它取决于许多因素,包括JVM实现和类路径上的jar顺序。
所以,总而言之,不,slf4j的设计不是这样的。