2012-04-26 12 views
1

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

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

    return mapping.findForward("many"); 
} 

ここでは、LoggerレベルをINFOに設定しました。

+0

読者は、直感的に直感的なインデントを使用して混乱していますか? –

+0

どのように直感的ではないか。秒で条件も満たされる。しかし、log.infoはコンソールには表示されません。 – Mdhar9e

+2

ロギングレベルが 'INFO'に設定されているので、' isDebugEnabled'が 'false'を返すことがありますか? – Jesper

答えて

3

「下」ログレベルは、すべての「高」レベルが含まれています:あなたはDEBUGにレベルを設定した場合、あなたはまた、INFOを取得し、メッセージをWARNとERRORだろうことを例えば意味

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

。あなたはINFOに設定する場合は、エラーが表示されます、WARNとINFOなくDEBUGメッセージ、などが挙げられる。これらの線で

ルック:

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

ここで混乱している何がDEBUG場合は、テストすることですレベルがアクティブ(isDebugEnabled)ですが、実際にはINFOレベルでログに記録します。

ので、レベルに設定されている場合、ここで何が起こるか:

  • DEBUG:DEBUGは、INFOメッセージが含まれているため、あなたは、メッセージが表示されます。
  • 情報isDebugEnabledは、レベルがDEBUG以上のレベルに設定されている場合、falseを返すため、メッセージを参照してください。つまり、if内のステートメントは実行されず、メッセージが表示されません。
0

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

関連する問題