私のアプリケーションでは、いくつかのアペンダーを使用しています - a FileAppender
、MemoryAppender
、およびAdoNetAppender
. 新しいファイルがオンデマンドで作成されるように、ログをリセットするコマンドがあります。これはうまく機能します - 私は単にlog4net.LogManager.GetRepository().Shutdown()
.
また、 にも同時にログをMemoryAppender
記録します。アペンダーからイベントを取得してログ ウィンドウに表示するタイマーがあります。前述のリセット機能を使用すると、ログに記録されるイベントがなくなるため、ログ ウィンドウにメッセージが表示されなくなります。
の場合、適切なファイル名を設定した後FileAppender
に呼び出すことで、ログを再開することができました。ActivateOptions
を呼び出しActivateOptions
ましたMemoryAppender
が、再度ログを開始することはできません。を呼び出す前ActivateOptions
に、オブジェクトを調べて、構成済みであることを確認しました。実際には、リセット関数を呼び出した時点からの構成が保持されるため、問題ないようです。
私もオンラインで検索しましたが、人々は電話するだけでよいと言っていましたlog4net.Config.DOMConfigurator.Configure
(非推奨-現在はlog4net.Config.XmlConfigurator.Configure`です)が、それも機能しませんでした。
ファイル、メモリ、および Ado アペンダーをサポートしながら、ロギングをシャットダウン/再開する別の方法はありますか?