- PR -

log4netについて

投稿者投稿内容
なりた
会議室デビュー日: 2004/10/13
投稿数: 6
投稿日時: 2004-10-13 17:49
はじめまして、こんにちは。
先週あたりからVB.NETを使い始めて、
C/S型システムを作成し始めたばかりの『なりた』と申します。

早速なのですが、ロギングするためにlog4netというものがあるのを見つけたのですが、どのサイトを参考にしてもイマイチ理解ができず、うまくいきません。

あるサイトを見て以下の手順で試したのですが、エラーがでてうまくできません。

1.参照の追加でlog4net.dllを追加
2.AssemblyInfo.vbに<Assembly: log4net.Config.DOMConfigurator(Watch:=True)>を追加
3.「D:\Test\AssemblyInfo.vb(34): クラス 'DOMConfigurator' は有効な属性型でないため、アセンブリで使用することはできません。」というビルドエラーが出る

このような質問をしてもいいのか悩んだのですが、どうしてもできないので、
誠に恐縮なのですが、設定方法等をお教えいただけないでしょうか?

よろしくお願いいたします。
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2004-10-13 18:03
こちらではうまくいったので違うのかもしれませんが、気になった点を。
log4netって、
log4net.Config.DOMConfiguratorAttribute クラスだけじゃなく、log4net.Config.DOMConfigurator クラスがあるんですね。
で、こっちは System.Attribute を継承していないので、こっちのクラスが見つかってしまったためにエラーが出たかもしれません。
であれば、明示的に
<Assembly: log4net.Config.DOMConfiguratorAttribute(watch:=True)>
としたら認識されるかもしれません。


なりた
会議室デビュー日: 2004/10/13
投稿数: 6
投稿日時: 2004-10-13 18:54
にしざき様、ご回答ありがとうございます。

早速、<Assembly: log4net.Config.DOMConfiguratorAttribute(watch:=True)> と記述してみたのですが、以下のエラーが出ました。

D:\Test\AssemblyInfo.vb(35): 型 'log4net.Config.DOMConfiguratorAttribute' が定義されていません。

log4net.dllを参照の追加で登録しただけではダメなのでしょうか?
関係ないかもしれませんが、「imports log4net」を記述してもエラーは消えませんでした。
「Imports log4net」に.を付けると「Imports log4net.Config.DOMConfigurator
」はあるのですが、「DOMConfiguratorAttribute」はでてきませんでした。

初歩的な質問で申し訳ありませんが、よろしくお願いいたします。
Atsushi.Eno
ベテラン
会議室デビュー日: 2003/04/23
投稿数: 60
投稿日時: 2004-10-14 08:29
古いバージョンのlog4net(少なくとも1.1)にはDOMConfiguratorAttributeが存在しません。参考にされているドキュメントが1.2ベースで書かれているのでしたら(多分そうなのでしょう)、1.2 beta8を使った方が良いのではないでしょうか。

ちなみにFooとFooAttributeがある場合でも、VB.NETコンパイラは正しく属性の方を洗濯しなければなりません(もし出来てないとしたらそれはバグです。詳しくは言語仕様参照)。System.Security.Permissionネームスペースには、SecurityPermissionクラスとSecurityPermissionAttributeクラスがあります。
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2004-10-14 08:56
本題は解決しそうな記述があったのでいいとして、
引用:

Atsushi.Enoさんの書き込み (2004-10-14 08:29) より:
ちなみにFooとFooAttributeがある場合でも、VB.NETコンパイラは正しく属性の方を洗濯しなければなりません。


これは心配しないでいいのですね。こういう例は初めて見たので、ちょっと気になって書いてみました。
なりた
会議室デビュー日: 2004/10/13
投稿数: 6
投稿日時: 2004-10-14 10:06
Atsushi.Eno様、にしざき様

おはようございます。
早速、Atsushi.Eno様にお教えいただいたとおり、
log4net1.2 Beta8にして試してみたところ、エラーはでなくなりました。

しかし、私が参考にしているサイトに書いてある通りにしても
ログが出力されていないような気がします。。。
【参考サイト<http://tsune.japan.webmatrixhosting.net/NWiki.aspx?page=log4net#heading:9>】

設定ファイルのファイル名や設置場所、
どこでこの設定ファイルを読み込んでいるのか、
設定ファイルのどの行でログ出力先等を指定しているのか等々、
恥ずかしながらわからないことだらけです。

最終的には指定したファイルにログを出力していきたいと思っています。
また、ログファイルが1Mを超えた場合に自動的に新ファイルに出力する方法も
お教えいただければ幸いです。

マニュアルをみても理解できないでいますので、
申し訳ございませんがよろしくお願いいたします。
なりた
会議室デビュー日: 2004/10/13
投稿数: 6
投稿日時: 2004-10-14 15:46
未だに設定ファイルの読み込ませ方がわからずにいます。。。

ググってもC#で書かれているサイトばかりですし、
付属しているサンプルは開けれないでいます。(ナゼ!?)

設定ファイルは<http://tsune.japan.webmatrixhosting.net/NWiki.aspx?page=log4net#heading:9>に掲載されているものを「log4net.config」として
作成してあります。

Private Shared ReadOnly logger As ILog = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)と書いても
エラーは出ないのですが、どこにも出力されていないっぽいです。

設定ファイルの読み込ませ方をお教えいただけないでしょうか?
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2004-10-14 15:57
これを app.config とすればいいのではないでしょうか。

[プロジェクト] - [新しい項目の追加] にある、アプリケーション構成ファイルで生成されたファイルにこの内容を記述します。

スキルアップ/キャリアアップ(JOB@IT)