はじめに
log4jとは「Apache Log4j」の略称で、Javaベースのロギングユーティリティです。
Javaでコードを書く際、何か値を標準出力に出力するだけであればSystem.out.print
を用いてコンソールで確認するケースが多々あると思います。
一方でlog4jを利用してもそれと同等のことができるので、Log4Jの入門記事としてそれらのやり方についてインストール部分から記事にしました。
Log4Jの入門
Log4jとはJavaのロギングユーティリティで、それによってどの部分をログに出すか?などといった細かい制御が可能なのが魅力です。
そんな制御パラメータとして、Log4Jではどのレベルのログを出力するか・・として以下の値を用います。
- FATAL
- ERROR
- WARN
- INFO
- DEBUG
- TRACE
上から順に致命的なメッセージなので優先度が高く、下に行けば行くほど開発者用の細かいものとして使い分けます。要は動作テストとかをする際は広範囲なログを出力し、バグが減ってきて運用フェーズになると重大なメッセージのみを出力するといった柔軟な制御を行う機構が装備されているというわけですね。
Eclipseでの使用例
Log4Jを試すためにクラスをプロジェクトの中に作成し、以下を記載して
import org.apache.log4j.*;
インポートを試みます。
このインポート文ですが、既にインストール済でないケースではエラーとなります。
そういう場合はlog4jをインストールしていきます。
具体的には以下にインストールするネタ元があり
The Jakarta Site - Jakarta Downloads
archivesの中にlog4jというフォルダがあるのでjakarta-log4j-X.tar.gzを手元にダウンロード。
tarファイルを解凍すると同フォルダの中の下図の位置にlog4jの実体jarファイルが確認できました。
あとはこのjarファイルにパスを通すために、Eclipseのプロジェクトを左クリック→プロパティ→Java Build Path→Add External JAR...で先ほどのjarファイルを追加することで
import org.apache.log4j.*;
に出ていたエラーは消えます。
log4jの動作確認用のサンプルコードは以下で
import org.apache.log4j.*; public class Test { public static void main(String args[]){ Logger logger = Logger.getLogger("Sample"); BasicConfigurator.configure(); logger.setLevel(Level.DEBUG); logger.debug("debug test"); logger.info("info test"); } }
こちらを実行すれば、コンソールへの出力は
0 [main] DEBUG Sample - debug test 1 [main] INFO Sample - info test
となります。そしてlogger.setLevel
のLevel.DEBUGをLevel.INFOに変更すればdebugは出力されません。つまり、こちらの変数でログレベルの設定を変更可能です。
終わりに
System.out.printlnからの乗り換え第一歩としては、今まで記載していたprint文を全てINFOで出力するというのがよいかもしれません。慣れてくれば、細かにログレベルを使い分けたり出力先をログファイルにしてみたり、というステップですね。
以上、log4jの入門記事でした。