いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

commons-logging, log4jに代わるロギングフレームワーク(SLF4J, Logback)

[矢野勉のはてな日記]SLF4J+LogBackではLog4jのDailyRollingFileAppenderのバグが修正されてるより。

log4jって全然アップデートされないな〜って思っていたら、開発者の方(Cekiさん)はLogbackプロジェクトの方に移ってるんですね。
これからは、こちらの方がメインストリームになりそうな予感。


メモメモ。

余談ですが、自分用のツールを作成する場合はlog4jとか使ってなくて
よく、以下のロギングツールを使ってます。
シンプルなので楽です。SLF4J用のアダプタもありますね。


[追記]
SLF4J + SimpleLogを利用するには以下のようにします。

  1. SimpleLogのjarファイルをクラスパスに設定
  2. SimpleLogの配布物についているSLF4J用のアダプタ(simplelog-slf4j.jar)をクラスパスに設定
  3. SLF4Jのjarファイルをクラスパスに設定

SLF4J側の設定はこれで終わりです。commons-loggingと違い、SLF4Jは
バインディングするロギングライブラリのアダプタファイルを置いておけば勝手に認識します。
設定ファイルはいりません。

後は、SimpleLogの設定ファイル(simplelog.properties)を作り、同じくクラスパスに設定し

import org.slf4j.*;

=== 省略 ===

private static final Logger log = LoggerFactory.getLogger(Hoge.class);

とかすれば使えます。
Logbackとかでも基本は同じです。

でも、SLF4J経由でSimpleLog使うとentry,exitメソッドが使えなくなるんですよね。
これメソッドに入っているかどうかの確認とかに結構便利なんで気に入ってるんですが。