将日志语句包装在try / catch中是否有意义? 我使用Log4net作为:
LogManager.GetLogger(type).Debug(message, exception)
为了防止Log4net抛出异常(我知道它仍然是故障停止)或者为了防止应用程序在日志记录逻辑抛出异常时崩溃,将调用包装在try / catch中是否有意义?
try{
LogManager.GetLogger(type).Debug(message, exception)
} catch(Exception e){//Some Logic Here}
此外,寻找有关在捕获子句中捕获子句应该发生什么的建议。
答案 0 :(得分:2)
Log4net永远不会在设计上引发异常。 Log4Net旨在不与您的程序流交互。可能出错的事情是如何格式化参数的错误。但log4net本身应该永远不会抛出异常。
Log4net常见问题解答:
log4net是一个可靠的日志记录系统吗?没有.log4net不可靠。它 是一种尽力而为的故障停止记录系统。通过失败,我们的意思是 log4net不会在运行时抛出意外的异常 可能导致您的应用程序崩溃。如果出于任何原因, log4net抛出未捕获的异常,请发送电子邮件至 log4net-users@lists.sourceforge.net邮件列表。未捕获的例外情况 被视为需要立即关注的严重错误。