使用Application Insights进行日志记录,实时调试

时间:2018-02-10 08:22:49

标签: azure logging

我正在使用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。那么如何在这些情况下真正追踪哪个对象为空?

2 个答案:

答案 0 :(得分:0)

您可以在Application Insights中查看实时流,它会立即显示错误。

有关详细信息,请参阅this link

至于Null Reference错误,如果某些必需对象(package,provider或userSettings)为null,我会亲自更改代码并抛出异常(可能是ArgumentNullException)。

答案 1 :(得分:0)

在应用程序洞察中,您可以使用日志流,这基本上是实时事件和所有日志。

至于你的例子和null引用。取决于您的框架是否兼容。如何使用包装?.price。这将使用c#6

中的null传播运算符处理空值