我正在使用Application Insights进行日志记录,在Azure中显示它需要几分钟。
我正在寻找一种解决方案,一旦发生错误,我就可以立即将其写入数据库。
“对象引用未设置为对象”实际上没有帮助,如果它从前一个对象中的参数创建新对象的行中抛出错误,当它为null时,因为您不知道哪个对象是空的。
示例:
var logPaymentModel = new LogPaymentModel
{
Amount = package.Price,
PackageId = package.Id,
PaymentProviderId = provider.Id,
UserSettingId = userSetting.Id,
Token = model.Token
};
此处出现错误,抛出1行,并且您不知道哪个对象为null。那么我应该更改此代码还是有任何记录器更好地显示问题是什么?所以也有兴趣如何有效地跟踪代码中的空引用错误,以避免混淆。这样的对象创建是一个问题吗?我通常使用的是自动播放器,这段代码是测试代码,但是如果自动播放器映射在一行中,如果在1行中抛出异常,你真的不知道哪个对象是null。那么如何在这些情况下真正追踪哪个对象为空?
答案 0 :(得分:0)
您可以在Application Insights中查看实时流,它会立即显示错误。
有关详细信息,请参阅this link。
至于Null Reference错误,如果某些必需对象(package,provider或userSettings)为null,我会亲自更改代码并抛出异常(可能是ArgumentNullException)。
答案 1 :(得分:0)
在应用程序洞察中,您可以使用日志流,这基本上是实时事件和所有日志。
至于你的例子和null引用。取决于您的框架是否兼容。如何使用包装?.price。这将使用c#6
中的null传播运算符处理空值