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