4

私のアプリケーションでは、いくつかのアペンダーを使用しています - a FileAppenderMemoryAppender、およびAdoNetAppender. 新しいファイルがオンデマンドで作成されるように、ログをリセットするコマンドがあります。これはうまく機能します - 私は単にlog4net.LogManager.GetRepository().Shutdown().

また、 にも同時にログをMemoryAppender記録します。アペンダーからイベントを取得してログ ウィンドウに表示するタイマーがあります。前述のリセット機能を使用すると、ログに記録されるイベントがなくなるため、ログ ウィンドウにメッセージが表示されなくなります。

の場合、適切なファイル名を設定した後FileAppenderに呼び出すことで、ログを再開することができました。ActivateOptionsを呼び出しActivateOptionsましたMemoryAppenderが、再度ログを開始することはできません。を呼び出す前ActivateOptionsに、オブジェクトを調べて、構成済みであることを確認しました。実際には、リセット関数を呼び出した時点からの構成が保持されるため、問題ないようです。

私もオンラインで検索しましたが、人々は電話するだけでよいと言っていましたlog4net.Config.DOMConfigurator.Configure(非推奨-現在はlog4net.Config.XmlConfigurator.Configure`です)が、それも機能しませんでした。

ファイル、メモリ、および Ado アペンダーをサポートしながら、ロギングをシャットダウン/再開する別の方法はありますか?

4

1 に答える 1

2

メソッドを呼び出さないことで、必要なものが得られると思いますShutdown。アペンダーに新しいファイル名を設定して を呼び出すだけActivateOptionsです。これにより、古いログ ファイルが閉じられ、新しいログ ファイルが開かれます...

于 2011-10-25T20:54:04.220 に答える