我正在使用SLF4J的java应用程序在Unix机器上运行,我的代码有以下条目:
if (LOG.isDebugEnabled())
LOG.debug("There is nothing in the cache for " + quote.getObject().getObjectId() + " - using the init quote");
我尝试通过JMX启用ALL或DEBUG或TRACE的日志记录,但仍然没有打印日志语句。所有声明没有" isDebugEnabled()
"打印出来。
有什么想法可以做些什么来启用这些日志语句?我无法更改logback.xml,只能使用JMX来更改日志级别。
答案 0 :(得分:0)
如果我理解正确的话,当你说“没有isDebugEnabled()的所有陈述被打印”时,你的意思就是打印出来了:
LOG.debug("There is nothing in the cache for " + quote.getObject().getObjectId() + " - using the init quote");
但这不是:
if (LOG.isDebugEnabled())
LOG.debug("There is nothing in the cache for " + quote.getObject().getObjectId() + " - using the init quote");
这没有意义,因为LOG.debug()
在内部会相当于if (isDebugEnabled())
。因此,您应该通过调试器运行代码以了解正在发生的事情。
如果您的意思是LOG.debug(...)
没有打印但其他级别没有打印,您应该按照@ a_a注释中的链接将程序设置级别设置为Debug。