Jakarta Commonsロギングに関するルールセットです。
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 には対応していません。
ロガーの定義が適切でない箇所を検出します。
public class Foo {
// 以下の定義は適切
private static final Log LOG = LogFactory.getLog(Foo.class);
// 以下の定義は不適切
protected Log LOG = LogFactory.getLog(Testclass.class);
}
ロガーのフィールド名を定義します。
|
|