gpt4 book ai didi

c# - 没有在我的 web api 中获取信息级别日志

转载 作者:行者123 更新时间:2023-12-04 08:28:57 25 4
gpt4 key购买 nike

我正在使用应用程序洞察进行日志记录。
所以我注意到在跟踪中我只得到与警告、错误和严重相关的日志,但我也需要这些信息。
下面是我的代码
在程序.cs

logging.AddFilter<Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider>(typeof(Program).FullName, LogLevel.Trace);
在 appsettings.json 我有以下规则
"NLog": {
"autoReload": true,
"throwConfigExceptions": true,
"internalLogLevel": "warn",
"internalLogFile": "${currentdir}/Logs/internal-nlog.txt",
"extensions": [
{
"assembly": "NLog.Extensions.Logging"
},
{
"assembly": "NLog.Web.AspNetCore"
},
{
"assembly": "Microsoft.ApplicationInsights.NLogTarget"
}
],
"default-wrapper": {
"type": "AsyncWrapper",
"overflowAction": "Block"
},
"targets": {
"blackHole": {
"type": "Null",
"formatMessage": false
},
"aiTarget": {
"type": "ApplicationInsightsTarget"
},
"asyncWrapperConsoleTarget": {
"type": "AsyncWrapper",
"timeToSleepBetweenBatches": 0,
"queueLimit": 1000000,
"batchSize": 1000,
"target": {
"name": "ConsoleTarget",
"type": "ColoredConsole",
"layout": "CorrelationId= ${aspnet-item:variable=CorrelationId} ${aspnet-user-identity} ${date:universalTime=true}|${level:uppercase=true}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}|${message} ${exception:format=tostring}|${logger}|${all-event-properties}",
"rowHighlightingRules": [
{
"condition": "level == LogLevel.Debug",
"foregroundColor": "DarkGray"
},
{
"condition": "level == LogLevel.Info",
"foregroundColor": "Gray"
},
{
"condition": "level == LogLevel.Warn",
"foregroundColor": "Yellow"
},
{
"condition": "level == LogLevel.Error",
"foregroundColor": "Red"
},
{
"condition": "level == LogLevel.Fatal",
"foregroundColor": "Red",
"backgroundColor": "White"
}
]

}
},
"rules": {
"0": {
"logger": "Microsoft.*",
"minLevel": "debug",
"writeTo": "blackHole",
"final": true
},
"1": {
"logger": "System.Net.Http.HttpClient.*",
"minLevel": "info",
"writeTo": "blackHole",
"final": true
},
"2": {
"logger": "*",
"minLevel": "debug",
"writeTo": "asyncWrapperDatabase"
},
"3": {
"logger": "*",
"minLevel": "trace",
"writeTo": "aiTarget"
}
}
我已经在我的 cs 文件中编写了以下代码
_logger.LogInformation("Testing info log");
_logger.LogDebug("Testing debug log");
_logger.LogError("Testing error log");
_logger.LogTrace("Testing trace log");
_logger.LogCritical("Testing critical log");
_logger.LogWarning("Testing warning log");
从上面我只得到错误、严重和警告的日志。我在做什么错了,为什么我没有得到信息级别的日志?

最佳答案

这里有2个问题。

  • 关于应用洞察问题,您需要在 appsettings.json 中添加与应用洞察相关的配置部分。 (我在您的共享配置中只看到 NLog 部分)。即使您在 nlog 级别允许,但应用程序洞察适配器正在此处进行过滤。默认为警告或以上。根据 official doc ,类似下面的内容可以解决您的问题。
  • {
    "Logging": {
    "LogLevel": {
    "Default": "Debug"
    },
    "ApplicationInsights": {
    "LogLevel": {
    "Default": "Debug"
    }
    }
    }
    }
    注意:ApplicationInsights/LogLevel 应该像上面一样嵌套在 Logging 中,如果你注意到的话。
  • 关于控制台日志记录问题,您的规则具有错误的目标名称。 asyncWrapperDatabase应该是 asyncWrapperConsoleTarget .
  • 关于c# - 没有在我的 web api 中获取信息级别日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65120943/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com