如何配置Log4Net以记录未处理的异常

时间:2016-12-19 10:38:41

标签: log4net

我希望能够通过配置log4net来记录未处理的异常。 是否可以通过仅更改配置文件来实现?如果是的话,怎么做? 否则,如果不可能,我应该在代码中实现什么才能实现这一目标?

1 个答案:

答案 0 :(得分:0)

仅使用配置无法执行此操作,您需要在某处记录实际异常。所以你需要捕获'uncatched'异常并记录它。

public static void Main(string[] args)
{
   // Add the event handler for handling UI thread exceptions to the event.
    Application.ThreadException += new     
  ThreadExceptionEventHandler(ErrorHandlerForm.Form1_UIThreadException);

  // Set the unhandled exception mode to force all Windows Forms errors
  // to go through our handler.
  Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

  // Add the event handler for handling non-UI thread exceptions to the event. 
  AppDomain.CurrentDomain.UnhandledException += new       
  UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
}

在处理程序中,您可以登录到log4net。之后,您可以通过配置打开和关闭它们。

但是有些情况下没有捕获异常。例如,当遇到failfast时。