log4netに苦戦

自宅でC#なプログラムを書いている最中、いいかげんロガーが欲しくなってきたので、探してみることにした。Javaで慣れ親しんだlog4jの兄弟プロジェクト、log4netの成果物を使うのがよろしかろうと判断、つっこんでみようとしたのだが・・・これがまたうまくいかない。

とにかく情報が少ないこともある。しかし、どちらかというとC#Visual Studio世界の常識に対応しきれていないのが問題のようである。

本家のサイトのマニュアルを見てみると、VSが勝手に作るAssenbly.csというファイルに一行書き加えて、アプリケーション名.configといった名前のファイルにlog4j.xmlと同じようにXMLでアペンダの定義を書いて、お決まりのやり方でソース内でloggerを定義し、出力してやればよいらしい。らしいのだが、肝心のことが書いてない。

・・・.configファイル、どこに置けばいいの?log4jではクラスパスの通っているところに置いておけばよいわけだが、C#の(むしろVSか?)作法がさっぱりわからない。ネットをざっとみてまわったが、どうやらファイルの置き場所などいちいち書くまでも無い常識の範疇の知識らしく、ぜんぜん記述がない。Assembly.csに直接パスを書き込むこともできるのだが、それが必須入力でない以上、どこか決まった場所に置いておけば勝手に読んでいくはずなのである。実行ファイルと同じディレクトリか?しかしそれではリビルドした際にファイルが消えてしまうし、試してみたがログは出力されなかった。いや、設定ファイルの記述ミスの可能性も・・・。うんともすんとも言わないからまったくわからない。

・・・とか書いていたら、ウィザードに「アプリケーション構成ファイル」ってのがあった!デフォルト名App.config、こいつだ!どうもプロジェクトのルートディレクトリに置かれるものっぽい・・・でも、これ使ってもログ出力できず(汗)いったい、どーすればいいんだ!?

まったく、これ以外にも作った超簡単なプログラムのFPSが上がらないとか、会社ではHibernateが全然言うこと聞かないとか、イライラさせられることが多々あるというのに、たかがロガーでこうも苦戦するとは・・・。いい加減神経がまいりそうだ。ツールがうまく動かない、なんてのは技術屋として見て全然魅力的な挑戦ではなく、単にかったりぃ。あー、はやくやっつけたい、こんなくだらないトラブル!!