azure - Cloud_RoleName 通过 ILogger 不一致地获取值
问题描述
我有一个应用程序(dotnet core 2.0),它通过 ILogger 机制将遥测数据发送到我们的 AppInsights 实例
// Startup.cs :: Configure()
factory.AddApplicationInsights(app.ApplicationServices, LogLevel.Information);
虽然这是有效的,并且调用LogInformation()
和它的兄弟确实确实写入了我们的 AI,但我注意到一些记录似乎缺少 cloud_RoleName(和 cloud_RoleInstance)的值。
我知道我可以提供一个遥测初始化程序来手动设置这个值,如果另一个解决方案失败,我会回到这个。但是,我想了解这里发生了什么。应用数据的调用和不应用数据的调用之间似乎没有任何区别。
我看到的唯一区别(只是刚刚注意到,所以还没有测试)是其中一个有效的方法是在一个带有 ILogger 的类中,如下所示:
private ILogger Logger { get; }
一个不起作用的是:
private readonly ILogger<ConnexeoPartnerLoginHandler> _logger;
这两者之间有一些差异,所以我需要测试其中的一些变化,看看它们是否会对输出产生任何影响。
更新
更改为类似于第一个属性的 ILogger 属性(用于另一个呼叫的属性)对我没有任何影响。没想到,但不得不尝试。
解决方案
对于不起作用的代码,请尝试在构造方法中初始化字段,如下所示:
private readonly ILogger<ConnexeoPartnerLoginHandler> _logger;
public ConnexeoPartnerLoginHandler(ILogger<ConnexeoPartnerLoginHandler> logger)
{
_logger = logger;
}
推荐阅读
- html - 无法在 bootstrap4 中扩展导航栏
- css - 什么是非 CSS 展示提示?
- google-cloud-platform - 识别比较句
- javascript - 无法通过不完整的名称获取频道 twillio programmabale 聊天节点 js
- flutter - ScopedModel - 如何传递多个模型
- python - 突然无法在 Google Colab 中更改 Python 版本的运行时
- java - 如何使用 redisson 客户端获取缓存值
- ruby-on-rails - 使用inf Rspec测试控制器时出现UrlGenerationError
- docker - Traefik - 角度应用程序的后端代理
- grails - 如何使用 .gsp 文件在 grails 应用程序中以可编辑模式隐藏字段?