Java Logging API

ロギングツールをを利用する必要性

ここでいうログとはシステムが出力するログのことで、

    • 利用状況のログ
    • 動作確認のログ
    • エラーログ

などがあります。標準出力(System.out.println等)やファイル出力などで行うことがあると思いますが、上述のようなログの目的であればロギングツールの利用を勧めます。その理由ですが、

    • ログ情報であるということが明示的になる
    • ログの目的に応じたレベル設定ができる
    • 各種ログ生成のためのツールが揃っている

などが挙げられます。もちろん自前で用意してもいいのですが、この種のライブラリやフレームワークを利用する方が便利であり、かつ第3者が見てもすぐに理解できるというのがあります。代表的なロギングツールには

    • Log4J
    • Java Logging API(Java標準)

があります。後者はJava標準ですので、ここではJava Logging APIを扱います。

ログのレベル

以下の7種類が用意されています。

    • FINEST
    • FINER
    • FINE
    • CONFIG
    • INFO ・・・ 情報
    • WARNING ・・・ 警告
    • SEVERE ・・・ 致命的

通常はINFO以下の3つの段階を利用します。

Java Loggin APIの使い方 ~まずはSystem.out.printlnから脱却しよう~

以下のような記述をします。

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

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