1

Strutsプロジェクトでは、ロガーを使用しています。WSADサーバーをデバッグモードで実行しています。ここでは、以下の条件は満たされていますが、コンソールにログ情報が出力されていません。

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

    return mapping.findForward("many");
}

ここでは、ロガーレベルを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メッセージが含まれているため、メッセージが表示されます。
  • 情報:レベルがDEBUGより高い値に設定されている場合に戻るため、メッセージは表示されません。つまり、内のステートメントは実行されず、メッセージは表示されません。isDebugEnabledfalseif
于 2012-04-27T07:33:31.253 に答える
0

Jesperが言っisDebugEnabledたように、ログレベルが少なくともに設定されている場合にのみtrueが返されるDEBUGので、そのチェックを削除するか、ログレベルをに設定しますDEBUGDEBUGレベルにはが含まれますが、は含まれINFOませINFODEBUG

于 2012-04-26T14:27:59.443 に答える