Log4JとNの狭間で

Javaフレームワークを開発していて最初に「嗚呼、自分で書くのは面倒だなぁ」と思ったのはロギングだった。
経験上ロギングってのはいろいろと考えなくちゃならない事が多いし出来合いの実装があるのであれば最大限それに合わせたほうが楽なのだ。(まだStrutsもα版だったかの頃でJakartaも今ほどデファクトでは無かった頃の話)
そんな中見つけた404 Not Foundには非常に感銘を受けた。properties又はXMLでアペンダの依存性を外から注入できる柔軟性、カテゴリという階層構造で分ける事のできるログ等殆ど必要な機能は揃っていたしなにより欲しかったローリングアペンダ(サイクリックで世代ファイルにロギングできる機能)がすぐに使える状態だったのですぐに拙作のフレームワークに組み込ませて頂いた。
そんなお世話になったフレームワークだったので現在の仕事で.NETのフレームワークを書くことになって.NETでも同様のプロジェクトがある事を知って小躍りしたのだった。
Apache log4net: Home
更新が2003年の7月以降、止まっているように見えるのが寂しいけれど、なんのなんのそれだけ実装が枯れているという事で使用に全く問題は無い。
当然.NET2.0上(VS2005上)でも問題無くビルドできるしそのまま使える。


正直な所数年前までは.NETとJavaが同じ目的で作られた同じような実装のライブラリィを互いに使えるなんて思わなかったのでなんというか、わくわくするものを感じると同時にJ2SE1.4(Java2)が出た時にSunが提供するロギングAPIに浮気しなくて良かったとしみじみ思う。


JavaでのLog4Jは元々サーバサイドでの使用なので問題になりえないが.NETではクライアントで使用するが故の陥りやすい問題が発生する可能性がある。(特にアセンブリを共有する場合)
そのことについては又別な機会に。