minimize

Jakarta Commons Logging

Jakarta Commonsロギングに関するルールセットです。

UseCorrectExceptionLogging

Exceptionのログ出力が適切に行われていない箇所を検出します。

LOG.error(e); // 以下のように記述した方が適切
LOG.error(e.getMessage(), e);

これは意外と気付きにくいのです。
org.apache.commons.logging.Log には二つの error メソッドが定義されています。

error(java.lang.Object message);
error(java.lang.Object message, java.lang.Throwable t);

前者はメッセージ付きのもの、後者はメッセージおよび例外情報付きのものです。

LOG.error(e);

としてしまうと前者のメソッドが利用され、その結果
ログに例外のスタックトレース情報が出力されないという事態に陥ってしまいます。
よって、

LOG.error(e.getMessage(), e);

とするのが適切というわけです。

ちなみに、このルールセットは log4j の Logger には対応していません。

ProperLogger

ロガーの定義が適切でない箇所を検出します。

public class Foo {
  // 以下の定義は適切
  private static final Log LOG = LogFactory.getLog(Foo.class);
  // 以下の定義は不適切
  protected Log LOG = LogFactory.getLog(Testclass.class);
}
staticLoggerName

ロガーのフィールド名を定義します。

TOP

[コメント(0)]