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的帮助