我想实现伪appender,在记录特定文本时抛出异常。 显然使用log4net是非常困难的。 我试图实现自己从AppenderSkeleton派生的Appender。 还将ErrorHandler更改为重新抛出异常的一个。但没有什么能阻止log4net捕获所有异常。
有没有办法阻止log4net这样做?最好以编程方式。
由于
答案 0 :(得分:2)
你不能这样做。 Log4net不会因设计而抛出异常。按设计,log4net不会与正在运行的程序进行交互。
log4net是一个可靠的日志记录系统吗?没有.log4net不可靠。它 是一种尽力而为的故障停止记录系统。通过失败,我们的意思是 log4net不会在运行时抛出意外的异常 可能导致您的应用程序崩溃。如果出于任何原因, log4net抛出一个未捕获的异常(ArgumentException除外) 可能会抛出的ArgumentNullException),请发送电子邮件至 log4net-user@logging.apache.org邮件列表。未捕获的例外情况 被视为需要立即关注的严重错误。此外, log4net不会还原为System.Console.Out或System.Console.Error 当其指定的输出流未打开时,不可写或 变满了。这样可以避免破坏其他工作程序 因为日志记录失败,所以会淹没用户的终端。但是,log4net 将输出单个消息到System.Console.Error和 System.Diagnostics.Trace表示无法执行日志记录。