我有一个企业应用程序,可以在发生异常信息时记录异常信息。该应用程序是 C# 和 C++.net 的组合。
我想在异常发生时获得尽可能多的信息。截至目前,我们只打印出消息和堆栈跟踪(在调试版本中提供行号,但不提供发布)。
任何错误日志的目标都是尽其所能(尽可能接近)指出错误。我很好奇我怎么能走得更远?我想要更多信息。
例如,我知道 NullReferenceExceptions 和 InvalidArguementExceptions 包含不同数量的信息,但除了“消息”字段之外,我没有使用任何东西。
我最好的选择是使用反射并捕获所有公共成员并将它们打印出来吗?或者也许链接大量的类型检查和强制转换以干净地打印出来?作为一个约束,我的日志记录函数只需要接受一个异常类型的参数。