本コーナーは、私(筆者)が、自分のためにlogbackについての情報をまとめ、 自分で参照するために執筆しています。
しかし、どうせ書くならば、他の人にも読んでもらおうと思い、 わからないことはないように書いてあるつもりですので、 logbackについてある程度まとまった情報が欲しい方は、是非参考にして下さい。
logbackとは、Javaプログラム内のログ収集を行うためのモジュールのことです 。 ログ収集モジュールとして有名だったのがlog4jです。 log4jは、AOSF(Apache Open Source Foundation)でCeki Gulcuさんを中心に開発されていました。 しかしCeki Gulcuさんが考えた新しい仕様が、AOSFの開発者に受け入れられずに、 それなら自分でやるよと始めたのがlogbackらしいのです。
ということで、私はこれからはlogbackが有力なログモジュールとなるのではないかと睨んでいます。 しかしlogbackはまだバージョンが1に満たない非正式なものであるため、 重要なシステムでの取り扱いはなるべく避けたほうがいいかもしれません。
プログラムを組む上で重要なライセンス問題について記述します。 この分野にはかなりうといので、自分なりに即席で調べた情報ですので、 お金が絡みそうなことに使用する場合は、きちんと英語まで呼んで調べたほうがいいでしょう。
logbackは、LGPL(GNU Lesser General Public License)というライセンスで公開されています。 このライセンスにより、logback自体を自前で改変したりした場合は、それについてLGPLとして、ソースコードを公開しなければなりません。 しかし、logbackを使うだけであれば、それを使う側のコード(つまりあなたが自作した部分についてのコード)は公開しなくてもいいのです (しかし、リバース・エンジニアリングを禁止することはできません)。 なので、logbackを使って、普通に有償ソフトウェアを作成することも可能です。
logbackをインストールするにはlogbackとSLF4Jをダウンロードしてからクラスパスを通す作業を行います。
logbackは、開発者のホームページからダウンロードします。 執筆現在は、ダウンロードはリンクを「Download」-「logback-x.x.x.zip」の順にクリックすれば行えます。
SLF4Jのダウンロードは、リンクを「SLF4J API」-「Download」-「slf4j-x.x.x.zip」の順にクリックすれば行えます。
どちらも、展開すると、中にjarファイルが幾つかあります。 logbackは、logback-core-x.x.x.jar、logback-classic-x.x.x.jar、logback-access-x.x.x.jar、 logback-examples/logback-examples-x.x.x.jarの4つをCLASSPATHに追加します。 SLF4Jは、slf4j-api-x.x.x.jarをCLASSPATHに追加します。
クラスパスを通せば、logbackを使うことが出来るようになります。 今後の説明や管理の簡易化のために、%LOGBACK_HOME%という環境変数を作成して、 logbackのディレクトリのパスを指定しておくことをお奨めします。
設定がすべて済んだら、 logbackが動いているかテストをしてみます。
C:\>java -classpath %CLASSPATH%;logback-examples-0.9.8.jar chapter1.HelloWorld1 14:31:45.278 [main] DEBUG chapter1.HelloWorld1 - Hello world.
ここで指定したchapter1.HelloWorld1というクラスは、%LOGBACK_HOME%/logback-examples/logback-examples-x.x.x.jarの中に含まれています。 ソースコードは、%LOGBACK_HOME%/srcに格納されています。
ログがコマンドプロンプトに表示されれば、logbackはインストールされています。 もしも表示されない場合は、クラスパスの設定が悪い、もしくはクラスパスに別のchapter1.HelloWorld1が存在します。 その点についてよく確認してみて下さい。