如何在运行时改变SLF4J水平?(How to change slf4j level at runt

2019-07-30 01:21发布

我已经使用SLF4J作为我的日志框架,通过log4j的支持。 我的问题是我要寻找一种方式来改变我在运行时记录的日志记录级别。

据我所知,SLF4J不会通过自己的API直接允许这一点,因此,我必须直接访问日志记录提供。 就个人而言,我觉得这是SLF4J一个巨大的缺陷。 所以,现在我的问题是如何确定编程通过SLF4J我使用的供应商? 使用SLF4J的最大目的是让你成为供应商无关 - 你可以在你喜欢的日志系统之间,而无需重新编写任何轻松切换。 但现在,如果我必须做出log4j的直接调用,我失去这种能力。

最起码,我希望能够确定我使用log4j的作为提供者,如果是,则允许用户切换日志级别。

如果我做LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME)其结果是实例org.slf4j.impl.Log4jLoggerAdapter甚至不org.apache.log4j.Logger (因为我本来希望/预期)。

有没有办法找到这一点?

谢谢,埃里克

Answer 1:

SLF4J是专为图书馆的抽象,而不是应用程序(当然,你可以而且应该仍然使用SLF4J在自己的应用程序的日志调用,一致性)。 在自己的应用程序,你可以选择下面的记录框架,所以它的精细访问log4j的API中的日志记录,配置专用零部件。

没办法应该库中摆弄修改日志配置,恕我直言,所以它不适合它是对SLF4J API。



文章来源: How to change slf4j level at runtime?
标签: java log4j slf4j