【发布时间】:2019-12-06 14:38:51
【问题描述】:
我们有一个 .net 核心 web api,并且我们使用了 Microsoft.Extensions.Logging 命名空间中可用的内置记录器。
我们已将此记录器与 Application Insight 集成。
我可以看到所有日志都被正确记录。但是,我看不到范围的日志记录信息
下面是我的代码:
var taskId = Guid.NewGuid();
using (logger.BeginScope("Assigning Task {taskId}.",taskId))
{
logger.LogInformation("{taskId} is assigned",taskId);
}
我可以看到此输出,其中范围日志信息保存在“{原始格式}”中。但是,结构化日志记录不适用于该字段:
我有以下问题:
- 范围日志记录在 Application Insight 中的工作原理是什么?
- 这是查看范围信息的唯一方法吗?
- 有没有办法查看一个范围内的所有日志?
- 为什么结构化日志记录不适用于 {Original Format}?
【问题讨论】:
-
根据记录器的不同,需要明确启用范围的输出。例如,对于控制台记录器,您可以在
appsettings.jsongithub.com/aspnet/Logging/issues/835#issuecomment-389567342 中配置 -
嗨@Dusan,我在appsettings.json中保留了“IncludeScopes”:true。要为 ApplicationInsight 启用它,还需要做些什么吗?
-
您使用的是什么版本的 Microsoft.ApplicationInsights.AspNet SDK? 2.7.0-beta2 之前的版本不支持 App Insights 的范围。 docs.microsoft.com/en-us/azure/azure-monitor/app/ilogger
标签: c# logging .net-core azure-application-insights