我正在使用 log4net 记录预期的异常,如下所示:
try {
// some exception occurred
} catch (Exception ex)
{
log.Error("Exception occurred!", ex);
}
该信息将被写入文件或我设置的某个地方。但是对于那些不在 try...catch 块运行时异常中的,我怎样才能在发生时完全记录它们?
log4net 是否支持它或者有什么方法可以将它们记录在一起?谢谢你。
您可以订阅Application_Error
Global.asax 中的全局事件处理程序,其中所有未处理的异常都会冒泡,您将有可能记录(并可能处理它们)。
例如:
protected void Application_Error()
{
var exception = Server.GetLastError();
log.Error("Exception occurred!", exception);
// TODO: optionally handle the exception here, for example display
// some custom error page or something
}
ELMAH是您的朋友 - 您可以将它与 log4net 一起使用。
ELMAH(错误记录模块和处理程序)是一个完全可插拔的应用程序范围的错误记录工具。它可以动态添加到正在运行的 ASP.NET Web 应用程序,甚至是一台机器上的所有 ASP.NET Web 应用程序,无需重新编译或重新部署。
您可以使用 nuget 获得适当的包配置。