私のアプリケーションでは、いくつかのアペンダ(FileAppender
、MemoryAppender
、およびAdoNetAppender
)が使用されています。私は、新しいファイルが必要に応じて作成されるようにログをリセットするコマンドを持っています。これは素晴らしい作品です - 私は単にlog4net.LogManager.GetRepository().Shutdown()
と呼んでいます。Shutdown()を呼び出した後にlog4netメモリアペンダを再起動する
私は同時にMemoryAppender
にもログを記録し、アペンダーからイベントを取り出してログウィンドウに表示するタイマーがあります。前述のリセット機能を使用すると、イベントがログに記録されなくなるため、ログウィンドウにメッセージが表示されなくなります。
については、適切なファイル名を設定してからActivateOptions
を呼び出して再度ログを開始することができました。私はMemoryAppender
にActivateOptions
を呼び出しましたが、それでもログの記録を開始できません。 ActivateOptions
を呼び出す前に、私はオブジェクトがすでに設定されていることを確認しました。実際には、リセット機能を呼び出した時点から設定が保存されているので、大丈夫です。
私もオンラインで検索しましたが、log4net.Config.DOMConfigurator.Configure
(廃止されました - 現在はlog4net.Config.XmlConfigurator.Configure`)に電話する必要がありますが、それでも問題はありません。
ファイル、メモリ、およびAdoアペンダーをサポートしている間に、ログをシャットダウン/再起動しようとする方法がありますか?
「ログをリセットする」と言うと、ファイルを空にするだけですか? –
新しいファイルを作成したいのですが、FileAppenderは正常に動作しています。 Shutdownを呼び出してActivateOptionsで再起動しようとすると、イベントを記録していないMemoryAppenderです。 – Dave
また、AdoNetAppenderも同様に機能すると付け加えます。これを実装するために、私はShutdownを呼び出してから、s3dbファイルの名前を変更し、元のファイル名で新しい "開始" s3dbファイルをコピーします。面白いのは、AdoNetAppenderの場合、ActivateOptionsをどこにでも呼び出さないということです。ちょっと魔法のように動作します。 – Dave