はじめに
Stack Overflow の Good examples using java.util.logging の和訳です.
Logging の使い方
クラス毎に Logger
を定義するとよい.
class MyClass {
private static final Logger logger = Logger.getLogger(MyClass.class.getName());
...
デバッグ
デバッグに関するログはレベルを Level.FINE
にすべきである.
logger.log(Level.FINE, "processing {0} entries in loop", list.size());
ループ内での値の確認等,必要性の小さいログは Level.FINER
/ Level.FINEST
にすべきである.
for (int i = 0; i < list.size(); ++i) {
logger.log(Level.FINER, "list[{0}]: {1}", new Object[]{i, list.get(i)});
}
例外
例外発生時にスタックトレースをログに表示するようにしましょう.
深刻な例外に関しては Level.SEVERE
に設定.
try {
...
} catch (Exception e) {
logger.log(Level.SEVERE, e.toString(), e);
}
ログを介した情報提供
ログを介してユーザに情報を与えたいときは Level.INFO
で
logger.log(Level.INFO, "hoge");
みたいにする.
ひとこと
なんでログが 2 行なんだよ Java ・・・.