gpt4 book ai didi

java - 如何在运行时更改 slf4j 级别?

转载 作者:太空狗 更新时间:2023-10-29 22:56:23 25 4
gpt4 key购买 nike

我使用 SLF4j 作为我的日志记录框架,由 log4j 提供支持。我的问题是我正在寻找一种在运行时更改记录器的日志记录级别的方法。

我知道 slf4j 不允许直接通过其自己的 API 执行此操作,因此,我必须直接访问日志记录提供程序。就个人而言,我发现这是 slf4j 的一个巨大缺陷。所以现在我的问题是如何通过 slf4j 以编程方式确定我正在使用哪个提供商?使用 slf4j 的最大目的是让您成为供应商不可知论者——您可以轻松地在您最喜欢的日志系统之间切换,而无需重新编码任何东西。但是现在,如果我必须直接调用 log4j,我就会失去这种能力。

至少,我希望能够确定我是否正在使用 log4j 作为提供程序,如果是,则允许用户切换日志级别。

如果我执行 LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME),结果是 org.slf4j.impl.Log4jLoggerAdapter 的实例,甚至不是 org. apache.log4j.Logger(正如我所希望/预期的那样)。

有什么办法可以查出来吗?

谢谢,埃里克

最佳答案

SLF4J 被设计为 的抽象,而不是应用程序(当然,为了保持一致性,您仍然可以而且应该在自己的应用程序的日志记录调用中使用 SLF4J)。在您自己的应用程序中,您选择底层记录器框架,因此可以在特定于日志记录配置的部分访问 log4j API。

恕我直言,图书馆不应该因为更改日志记录配置而搞砸,所以它不适合放在 SLF4J API 上。

关于java - 如何在运行时更改 slf4j 级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11145090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com