【发布时间】:2012-06-21 19:08:43
【问题描述】:
我使用 SLF4j 作为我的日志框架,由 log4j 支持。我的问题是我正在寻找一种方法来在运行时更改我的记录器的日志记录级别。
我了解 slf4j 不允许直接通过其自己的 API 进行此操作,因此,我必须直接访问日志记录提供程序。就个人而言,我发现这是 slf4j 的一个巨大缺陷。所以现在我的问题是如何通过 slf4j 以编程方式确定我正在使用哪个提供程序?使用 slf4j 的最大目的是让您与提供者无关 - 您可以轻松地在您最喜欢的日志系统之间切换,而无需重新编码任何东西。但是现在,如果我必须直接调用 log4j,我就失去了这种能力。
至少,我希望能够确定我是否使用 log4j 作为提供程序,如果是,则允许用户切换日志级别。
如果我执行LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME),则结果是org.slf4j.impl.Log4jLoggerAdapter 的实例,甚至不是org.apache.log4j.Logger(正如我所希望/预期的那样)。
有什么办法可以查到吗?
谢谢, 埃里克
【问题讨论】:
-
谢谢。我不知道为什么我在最初的搜索中错过了这个。