1

在我的 Struts 项目中,我使用的是 Loggers。我在调试模式下运行我的 WSAD 服务器。此处满足以下条件,但未在控制台中打印日志信息。

if(count.intValue() > 1)
{
    if (log.isDebugEnabled())
        log.info("many");

    return mapping.findForward("many");
}

在这里,我将我的 Logger 级别设置为 INFO。

4

2 回答 2

11

“较低”的日志记录级别包括所有“较高”级别:

ERROR > WARN > INFO > DEBUG
highest ------------ lowest

这意味着,例如,当您将级别设置为 DEBUG 时,您还会收到 INFO、WARN 和 ERROR 消息;如果将其设置为 INFO,您将看到 ERROR、WARN 和 INFO,但不会看到 DEBUG 消息等。

看看这些行:

if (log.isDebugEnabled())
    log.info("many");

这里令人困惑的是您测试 DEBUG 级别是否处于活动状态(使用isDebugEnabled),但您实际上是在 INFO 级别登录。

那么,如果级别设置为:

  • DEBUG:您将看到该消息,因为 DEBUG 包含 INFO 消息。
  • INFO:您不会看到该消息,因为当级别设置为高于 DEBUG 时isDebugEnabled返回。false这意味着里面的语句if没有被执行,你也看不到消息。
于 2012-04-27T07:33:31.253 回答
0

正如 Jesper 所说,isDebugEnabled只有当日志级别至少设置为时才会返回 true DEBUG,因此请删除该检查或将日志级别设置为DEBUG. 该DEBUG级别包括INFO,但INFO不包括DEBUG

于 2012-04-26T14:27:59.443 回答