log4Net でロガー インスタンスをシャットダウンする適切な方法

これは私のために働いた:

log.Logger.Repository.Shutdown();

または、長い道のりをたどることもできます:

foreach (log4net.Appender.IAppender app in log.Logger.Repository.GetAppenders()) {
    app.Close();
}

この例では、アペンダーを共有していないため、ロガーにアタッチされているすべてのアペンダーで IAppender.Close() メソッドを使用できるはずです (これにより、すべてのアペンダーもフラッシュされます)。

ロガーを IAppenderAttachable にキャストし、そこでアペンダー フォームを取得する必要があります。これにより、ネストされたアペンダーの最上位でのみ Close() を呼び出すようにすることができます。これにより、正しい順序で自分の子をフラッシュして閉じる必要があります。

http://logging.apache.org/log4net/release/sdk/html/M_log4net_Appender_IAppender_Close.htm

これは、標準の log4net セットアップを構成で使用している場合、非常に危険です!