Log4net在不引发错误方面有点太擅长.我试图创建某种处理程序,如果log4net无法启动或死亡并且无法再进行日志记录,则将触发该处理程序.
我知道应用设置键可以打开log4net的内部调试(log4net.Internal.Debug).但是,即使log4net出现问题,我也不总是需要所有调试信息.
有谁有办法以编程方式捕获和处理log4net中的错误?
解决方法:
好吧,log4net将使您很难执行此操作,因为它(根据设计)将抑制在日志记录操作期间引发的异常.这是因为生产系统不应因为格式化日志消息时发生错误而失败.
值得尝试使用非常简单的图案布局,因为有时在图案布局中使用%P {XYZ}元素会导致问题,如果未正确设置相应的属性.如果使用简单的模式布局可以按预期工作,则可以一次将所需的内容重新添加回去,看看是否可以通过这种方式查明问题.