t100のプログラミング脱出作戦

自分のプログラミング脳をプログラムにして、いつかプログラミングから脱出してやるぞっ!とか夢見ながら、日々プログラム作っていく 百野 貴博 の日記です!今は、屋号『百蔵。』として、Silverlight・WPFを追跡中です! (2007/09/30)
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【--/--/-- --:--】 | スポンサー広告 | トラックバック(-) | コメント(-) top↑
Spring2.0でLogbackを使う
Log4Jのコンフィグファイルの書き方を調べようとWebを調べてみたら
「ていうか時代はSLF4Jでlogbackだよね!」みたいな記事に突き当たってしまった。
うおっ!まぢ?!ていうか、それ何?!

Log4Jは秀逸な出来だったし、かなり長くお世話になっていたし、いろんな言語に移植されてたから、これだけは不動だと(勝手に)思っていたのだが、、、
知らん間に、次の世代が出てきとるようだ・・・。


なんでも、Log4J 徹底解説によると、Log4Jの生みの親が、1.3の開発方針を内部で反対されたことでヤル気なくしちゃって、新たにLogbackを作り始めたのが事の経緯だとか。
頼むよ。ヤル気なくさないでくれよ。

で、SLF4JやLogbackは、以下のような位置づけのようです。
SLF4J と Logback 。

●SLF4J (Simple Logging Facade for Java) … Commons Logging の後継。
●Logback … Log4j の後継。

うーむ・・・。
また新しいフレームワーク(ライブラリ)が無造作に増えるのか。
ログくらいは、一つのライブラリを安定して進化させて欲しかった気もするが・・・。


まぁでも”長いものには巻かれろ主義”としては、時代の流れには逆らえないので(ショボ)SpringでLogbackを使う構成を調べてみました。

Spring2.0は、Commons-Loggingに依存しているので、うまいことやらないとWebアプリケーション内で複数のロガーを持つ羽目になってしまいます。
SLF4Jに用意されている、Commons-Loggingとのブリッジを使って、ロガーをLogback一つにしたいところです。
Springのロガーを、logbackにする為には以下のライブラリが必要です。
(バージョン番号は適宜読み替えて・・・)

・jcl104-over-slf4j-1.4.3.jar  : jakarta-commons-loggingとslf4jのブリッジ
・logback-classic-0.9.8.jar  : logbackとslf4jのブリッジ
・logback-core-0.9.8.jar   :logbackの本体
・slf4j-api-1.4.3.jar  :SLF4Jの本体
・spring.jar   : Springの本体

以上で大丈夫です。
SLF4J(Logback)は既定でコンソールにログが出るので、とりあえず動きます。
jcl104-over-slf4j の中で、commons-logging のインターフェイスごと提供されているので、commons-loggingのJarが必要ないあたりもミソです。

あとは、コード中に以下のような感じでLoggerを生成すればlogbackを利用できます。

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

#ブリッジがあるので、従来のCommons-Loggingのコードもlogbackで動作します。

今回の方法で、Springに限らずCommons-Loggingを使っているプロジェクトは、上記方法でプログラム変更無しにSLF4J + Logback への移行が可能だと思われます。
#設定ファイルの移行は発生しますが、、、


次回は、logbackのコンフィグファイルの記述に迫ります!(たぶん)













管理者にだけ表示を許可する


トラックバックURL:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。