可能重复:
How to get the Stack trace when logging exceptions with NLog?
抛出异常以从日志中获取清晰图片的最佳做法是什么?
对于日志记录,我使用的是NLog。
以下是简单的代码:
catch (Exception ex)
{
logger.Fatal(ex.Message);
throw new Exception(ex.Message);
}
它没有给我一个好的记录消息。我需要信息,如函数,错误代码行。
答案 0 :(得分:5)
对于loggin目的,您要分析的不仅仅是异常对象的消息字段。
这个link将为您提供从通用异常对象
中可以获得的信息此外,throw ex
和throw
之间存在差异。而且当你抛出新创建的异常时。
throw new Exception(ex.Message)
)你抛出了一般性异常,它可以说明异常的本质,并且有新的堆栈跟踪,从这行代码构建。 throw ex
- 重新抛出原始异常,但将stacktrace切换为当前catch子句
throw
- 使用原始堆栈跟踪重新抛出原始异常,允许您记录等异常并让它更进一步
因此,根据您将要实现的目标,这三种情况中的一种将满足您的需求。
答案 1 :(得分:0)
您可以阅读更多关于异常抛出的最佳做法 http://msdn.microsoft.com/en-us/library/system.exception_properties.aspx