Asp.net core 如何通过NLog获取AppInsights中的范围信息?

Asp.net core 如何通过NLog获取AppInsights中的范围信息?,asp.net-core,azure-application-insights,nlog,Asp.net Core,Azure Application Insights,Nlog,在构造函数中注入ILogger的方法中考虑以下代码: 使用(_logger.BeginScope(“为{identification}请求{page},page,identification)) { 如果(标识==null) { var test=“测试字符串”; _LogTrace(“不存在标识{test}。呈现索引页”,test); 返回页(); } _LogDebug(“标识存在:{Identification}”,标识); } 我在AI中看到这一行: 我希望得到一些关于范围的信息;虽

在构造函数中注入
ILogger
的方法中考虑以下代码:

使用(_logger.BeginScope(“为{identification}请求{page},page,identification))
{
如果(标识==null)
{
var test=“测试字符串”;
_LogTrace(“不存在标识{test}。呈现索引页”,test);
返回页();
}
_LogDebug(“标识存在:{Identification}”,标识);
}
我在AI中看到这一行:

我希望得到一些关于范围的信息;虽然我不知道它看起来如何,但我假设它是沿着
LoggerName
test
属性添加到CustomDimensions的

在我的创业课程中,我有以下几点:

public void配置服务(IServiceCollection服务)
{
Configure(Configuration.GetSection(“ApplicationInsights”);
services.AddApplicationInsightsTelemetry();
LogManager.Configuration=newnlogloggingconfiguration(Configuration.GetSection(“NLog”);
///…重置
}
My appsettings.json如下所示:

{
  "Logging": {
    "IncludeScopes": true,
    "NLog": {
      "IncludeScopes": true
    },
    "LogLevel": {
      "Default": "Trace",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    },
    "ApplicationInsights": {
      "IncludeScopes": true,
      "LogLevel": {
        "Default": "Trace"
      }
    }
  },
  "NLog": {
    "autoReload": true,
    "throwConfigExceptions": true,
    "internalLogLevel": "trace",
    "internalLogFile": "${basedir}/internal-nlog.txt",
    "extensions": [
      {
        "assembly": "Microsoft.ApplicationInsights.NLogTarget"
      }
    ],
    "targets": {
      "aiTarget": {
        "type": "ApplicationInsightsTarget"
      },
      "logconsole": {
        "type": "ColoredConsole"
      }
    },
    "rules": [
      {
        "logger": "*",
        "minLevel": "Trace",
        "writeTo": "aiTarget, logconsole"
      }
    ]
  }

有什么我遗漏的吗…?

我想你可以试试这个:

“目标”:{
“目标”:{
“类型”:“ApplicationInsightsTarget”,
“上下文属性”:[
{
“名称”:“scopecontext”,
“布局”:{
“类型”:“JsonLayout”,
“includemdlc”:“正确”
}
}]
},
“日志控制台”:{
“类型”:“彩色控制台”
}
},

我们还创建了这个:

哇,它很管用!我非常感谢你的回答:-)但是如果没有你的知识,我不知道我怎么可能解决这个问题,可能纯粹是经验。您的PR是否像文档所暗示的那样,可以开箱即用?因此,如果PR获得批准,配置更改可以恢复为具有相同的功能?@321X是,PR将允许捕获范围上下文,而无需JsonLayout的帮助