可能重复:
使用 NLog 记录异常时如何获取堆栈跟踪?
抛出异常以从日志中获得清晰图片的最佳做法是什么?
对于日志记录,我使用的是 NLog。
下面是简单的代码:
catch (Exception ex)
{
logger.Fatal(ex.Message);
throw new Exception(ex.Message);
}
它没有给我一个很好的日志记录消息。我需要诸如函数、错误代码行之类的信息。
可能重复:
使用 NLog 记录异常时如何获取堆栈跟踪?
抛出异常以从日志中获得清晰图片的最佳做法是什么?
对于日志记录,我使用的是 NLog。
下面是简单的代码:
catch (Exception ex)
{
logger.Fatal(ex.Message);
throw new Exception(ex.Message);
}
它没有给我一个很好的日志记录消息。我需要诸如函数、错误代码行之类的信息。
出于登录目的,您要分析的不仅仅是异常对象的消息字段。
此链接将为您提供有关您可以从通用异常对象中获得什么的信息
throw ex
此外,和之间也有区别throw
。此外,当您抛出新创建的异常时。
throw new Exception(ex.Message)
),您正在抛出通用异常,它没有说明异常的性质并具有新的堆栈跟踪,从这行代码构建。throw ex
- 重新抛出原始异常,但将堆栈跟踪剪切到当前的 catch 子句
throw
- 使用原始堆栈跟踪重新抛出原始异常,允许您记录等异常并让它更进一步
因此,根据您要实现的目标,这三种情况之一将满足您的需求。