2010年10月2日土曜日

Java Logging API ~まずはSystem.out.printlnから脱却しよう~

ここでいうログとはシステムが出力するログのことで、
  • 利用状況のログ
  • 動作確認のログ
  • エラーログ
などがあります。プログラミングの際には標準出力(System.out.println等)やファイル出力などで行うことがあると思いますが、上述のようなログの目的であればロギングツールの利用を勧めます。代表的なロギングツールには
  • Log4J
  • Java Logging API(Java標準)
があります。後者はJava標準ですので、ここではJava Logging APIを扱います。
 
このようなLoggingツールを利用する理由ですが、
  1. ログ情報であるということが明示的になる
  2. ログの目的に応じたレベル設定ができる
  3. 各種ログ生成のためのツールが揃っている
などが挙げられます。もちろん自前で用意してもいいのですが、このようなライブラリには「ロギング」についてしっかりと考えられて作られてますから、中途半端に自作するよりはましであることがわかると思います。また、この種のライブラリやフレームワークを利用する方が第3者が可読しやすいコードが書けるというのもあります。

ログのレベル
以下の7種類が用意されています。
  1. FINEST
  2. FINER
  3. FINE
  4. CONFIG
  5. INFO ・・・ 情報
  6. WARNING ・・・ 警告
  7. SEVERE ・・・ 致命的
通常はINFO以下の3つの段階を利用します。

Java Loggin APIの使い方

以下のような記述をします。
Logger log =Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
log.info("プログラムを実行します");
log.warning("警告メッセージです");
log.severe("致命的なエラーが発生しました");

ログのレベルに対応した出力メソッドがありますので、使い分けることになります。これだけでは便利さが分かりにくいかもしれませんが、実行時にログの出力レベルを設定することで、重要なメッセージだけを出力できるようになります。例えば、動作確認はINFOレベルでありデバッグ時に確認するさいに使われるものです。稼動時には、WARNIGやSEVEREのみを出力するといったことが可能です。また、System.out.printlnよりはどういう意味であるのかが明示的になり、コードが読みやすくなります。

0 件のコメント:

コメントを投稿