azure Application Insights中并未记录所有日志级别

am46iovg  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(165)

我有一个应用程序设置为使用Application Insights,我尝试手动记录一些自定义信息。下面是我的控制器:

public class MyController : Controller
{
    private ILogger<MyController> Logger { get; set; }

    public MyController(ILogger<MyController> logger)
    {            
        Logger = logger;
    }

    public IActionResult Index()
    {
        Logger.LogCritical("Test critical");
        Logger.LogError("Test error");
        Logger.LogWarning("Test warning");
        Logger.LogInformation("Test information");
        Logger.LogDebug("Test debug");
        Logger.LogTrace("Test trace");

        ...
    }

我在我的Startup.cs中有这个:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    loggerFactory.AddConsole(Configuration.GetSection("Logging"));
    loggerFactory.AddDebug();
    loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Warning);
    ...

}
在我的程序中。cs:

public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseApplicationInsights()
            .UseStartup<Startup>()
            .Build();

在我的appsettings.json中:

"Logging": {
  "IncludeScopes": false,
  "ApplicationInsights": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "LogLevel": {
    "Default": "Warning"
  }
}

当我在Azure门户中查看Application Insights时,只记录了以下内容:

因此,由于某种原因,它跳过了一些,只记录Critical、Warning和Error。
是否需要更改日志设置或启动文件中的某些内容?

rhfm7lfc

rhfm7lfc1#

如果要收集所有遥测数据,则不应在appsettings.json中指定Warning logLevel。Warning日志级别将仅收集Warning/Error/Critical数据,而放弃Trace/Debug/Information数据。
有关详细信息,请参阅本文档和本文档。
请在appsettings.json中将应用程序洞察的日志级别指定为Trace,如下所示:

"Logging": {
  "IncludeScopes": false,
  "ApplicationInsights": {
    "LogLevel": {
      "Default": "Trace"
    }
  },
  "LogLevel": {
    "Default": "Warning"
  }
}

相关问题