0

log4netで外部構成ファイルを操作しています。これは、アプリの構成に構成ファイルの場所を指定しXmlConfigurator.Configure() 、アプリの起動時に呼び出すことによって行います。

  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  ...
  <log4net configSource="Log4Net.config" />

これは機能しますが、変更を監視したいと思います。ドキュメントによると、これを実現するためにアセンブリ属性を使用できるはずです。つまり、これ以上呼び出す必要はありませんXmlConfigurator.Configure()。そこで、これをメインアプリ(およびそれが参照するプロジェクト)のAssemblyInfo.csに追加します。

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]

問題は、これはまったく何もしないということです。の呼び出しを削除するとXmlConfigurator.Configure()、ロギングが機能しません。ロギングは開始されません。これらの属性は違いを生まないようです。そのため、ファイルが機能しているのをまったく見ることができません。

誰かアドバイスできますか?

4

1 に答える 1

0

それを話しました。

これは、最初のログメッセージが別のアセンブリから送信されたためです。log4netドキュメントが言うように:

アプリケーションの起動中、そして確実に外部アセンブリがロードされて呼び出される前に、できるだけ早くロギング呼び出しを行うことが不可欠です。

于 2012-11-23T12:06:51.243 に答える