2017-02-24 8 views
0

特定のテキストをロギングするときに例外をスローする偽のアペンダを実装したかったのです。明らかにlog4netとそれは非常に困難です。 AppenderSkeletonから派生した私自身のAppenderを実装しようとしました。 ErrorHandlerを、例外を再発行しているものに変更しました。しかし、log4netがすべての例外を捕まえるのを止めるものはありません。log4netがすべての例外を捕まえないようにするには?

それをやってからlog4netのを停止する方法はありますか?好ましくはプログラム的に行う。

ありがとうございます。

+0

ログレベルのエラーレベル以上のログのみを表示し、低レベルの例外はログに記録しないことを意味します。 – Jacobr365

+0

私はこれを行う方法はないと思います。 Log4netは、ロギング中のエラーがプログラムに影響しないことを確認します。返信いただきありがとうございます。https://logging.apache.org/log4net/release/faq.html#reliability – sgmoore

答えて

1

これはできません。 Log4netは設計上例外をスローしません。設計上、log4netは実行中のプログラムと対話しません。

は、信頼性の高いロギングシステムをlog4netのされていますか?いいえ、log4netは信頼できません。 は、ベストエフォート型のフェイルストップロギングシステムです。フェールストップでは、 は、実行時にlog4netが予期しない例外をスローしないようにします。 によってアプリケーションがクラッシュする可能性があります。何らかの理由で、 log4netのは(ArgumentExceptionがスローさとすることができる 例外ArgumentNullExceptionを除く)キャッチされない例外をスローした場合、 [email protected]メーリングリストにメールを送ってください。キャッチされていない例外 は、直ちに注意が必要な深刻なバグとして処理されます。また、 log4netのはSystem.Console.Out又はその指定された出力ストリームが開かれていないSystem.Console.Error に戻らなくなり、書き込み可能でないか、または が一杯になります。これにより、ロギングに失敗したために、ユーザの端末がフラッディングされている別のプログラムである が破損するのを防ぎます。しかし、System.Console.Errorに 意志出力単一のメッセージをlog4netのと System.Diagnostics.Traceロギングを行うことができないことを示します。

+0

をご覧ください。少なくとも私はそこに解決策がないことを知っています。 –

関連する問題