可能重复:
使用NLog记录异常时如何获取堆栈跟踪?
抛出异常以从日志中获得清晰图片的最佳实践是什么?
对于日志记录,我使用的是NLog。
下面是简单的代码:
catch (Exception ex)
{
logger.Fatal(ex.Message);
throw new Exception(ex.Message);
}
它没有给我一个好的日志记录信息。 我需要诸如功能,错误代码行之类的信息。
出于登录目的,您将不仅分析异常对象的消息字段。
该链接将为您提供有关从通用Exception对象获得的信息
另外, throw ex
和throw
之间也有区别。 而且,当您引发新创建的异常时。
throw new Exception(ex.Message)
),您将抛出通用异常,该通用异常未说明任何有关异常的性质,并且具有新的stacktrace(从此代码行构建)。 throw ex
ex-抛出原始异常,但将stacktrace剪切为当前的catch子句
throw
-重新抛出原始异常与原来的堆栈跟踪,让您登录等异常,让它走得更远
因此,根据要实现的目标,这三种情况之一将满足您的需求。
您可以从http://msdn.microsoft.com/zh-cn/library/system.exception_properties.aspx了解有关抛出异常的最佳实践的更多信息。