私はできる限りDRYとしてログステートメントを保持できるように、私は多数のカスタムオブジェクトレンダラーを持っています。最初に私のアプリケーションを配備すると、log4netはカスタムレンダラを認識しませんが、それ以外のものは正しく処理します。 configファイルに触れると(変更されたように見える)、ファイルウォッチャーは変更をピックアップし、レンダラーが動作を開始します。しかし、時間がたつにつれて、彼らは再び作業をやめ、log4net設定ファイルに再度触れなければなりません。Log4netはカスタムレンダラーの使用を中止します
セットアップは.Net 3.5(sp1)wcfアプリケーションです。この問題は、2008年版Webサーバーと2008年版Windows 7の両方で発生します。log4net.configという設定ファイルがあり、AssemblyInfoメソッドを使用しています。
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
私がロガーにアクセスする方法は、そのようなクラスの静的メンバーを使用することです。
private static readonly ILog log = LogManager.GetLogger(typeof(Service));
レンダラーはこれと同様に構成されています。
<renderer renderingClass="MyCompany.Log4net.SearchRequestRenderer, MyCompany.Log4net" renderedClass="System.DirectoryServices.Protocols.SearchRequest" />
これらのレンダラはすべて、ログが行われているメインとは別のアセンブリにあります。何かを逃したり、何か間違っているのですか?なぜレンダラーがすぐに認識されないのか分からず、後でもう一度忘れてしまいます。