プログラムでログを使いたいのですが、java.util.ロギングですが、どうやって始めればいいのか分かりません。
ログ記録で何ができるかの例はありますか? 自分のプログラムでログ記録をどのように使用すればよいでしょうか?
ベストアンサー1
java.util.logging
アプリケーションに 1 つの jar ファイルを追加する必要がなくなり、優れたフォーマッタと連携して動作します。
一般的に、各クラスのトップには以下のものが必要です。
private static final Logger LOGGER = Logger.getLogger( ClassName.class.getName() );
その後は、ロガークラス。
実行フローの最上位レベルでデバッグするLevel.FINE
場合に使用します。
LOGGER.log( Level.FINE, "processing {0} entries in loop", list.size() );
ループ内や、基本的なフローの問題をデバッグするときに必ずしもそれほど詳細を確認する必要がない場所では、Level.FINER
/ を使用します。Level.FINEST
LOGGER.log( Level.FINER, "processing[{0}]: {1}", new Object[]{ i, list.get(i) } );
ログ機能のパラメータ化されたバージョンを使用して、GC が対応しなければならない大量の文字列連結ガベージが生成されないようにします。Object[]
上記のように、通常はスタック割り当てが安価です。
例外処理では、常に完全な例外の詳細をログに記録します。
try {
...something that can throw an ignorable exception
} catch( Exception ex ) {
LOGGER.log( Level.SEVERE, ex.toString(), ex );
}
ex.toString()
ここでは常にメッセージとして渡します。そうすることで、ログ ファイルで " grep -n
" を " Exception
" とすると、メッセージも表示できます。そうしないと、スタック ダンプによって生成される出力の次の行にメッセージが表示され、その行にも一致するように、より高度な正規表現が必要になります。その結果、確認する必要のある出力よりも多くの出力が返されることがよくあります。