我一直在使用SLF4j作为我的日志框架,由log4j支持。我的问题是,我正在寻找一种在运行时更改记录器的日志级别的方法。
我了解到slf4j不允许直接通过自己的API实现此功能,因此,我必须直接访问日志提供程序。个人认为这是slf4j的一个巨大缺陷。那么现在我的问题是如何通过slf4j编程确定我正在使用哪个提供程序?使用slf4j最大的目的是您成为提供者无关 - 您可以轻松地在喜欢的日志系统之间切换,而无需重新编写任何内容。但是,如果我必须直接调用log4j,那么我就失去了这个能力。
至少,我希望能够确定是否正在使用log4j作为提供程序,如果是,则允许用户切换日志级别。
如果我执行LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME)
,结果是org.slf4j.impl.Log4jLoggerAdapter
的一个实例,甚至不是我所希望/期望的org.apache.log4j.Logger
。
有没有办法找出这一点呢?
谢谢, Eric