如何从Azure门户更改应用程序见解的最低严重性级别?

时间:2018-09-24 17:52:15

标签: c# azure asp.net-core azure-application-insights

在ASP.NET Core应用程序中,我已配置ILoggerFactory实例以在Application Insights中输出日志:

public class Startup
{
    ...

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        loggerFactory.AddConsole(LogLevel.Debug);
        loggerFactory.AddDebug();

        // By default, set the minimum severity level to Information.      
        loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Information);
        // ...
    }
}

稍后,someClass被注入ILoggerFactory实例,并且正在记录调试消息:

public class SomeClass
{
     private ILogger _logger;

     public SomeClass(ILoggerFactory loggerFactory)
     {
          _logger = loggerFactory.CreateLogger(nameof(SomeClass));
     }

     public void Do()
     {
          _logger.LogDebug($"Some debug message");
     }
}

Application Insights与ASP.NET Core应用分开配置,而不是作为扩展。

由于我已将Application Insights配置为仅记录严重性高于或等于参考消息的消息,所以看不到“调试”跟踪。

问题

是否有一种方法可以从Azure门户更改最低日志记录级别以进行故障排除,而不必重新编译应用程序?

2 个答案:

答案 0 :(得分:0)

尝试修改appsettings.json-专门添加ApplicationInsights部分并调整日志级别。

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

如果您的应用程序没有应用程序见解,但从Web Apps安装了应用程序见解扩展,则应该可以。

由于您已经在代码中引用并设置了日志级别,所以我不确定100%是否可以使用:(

答案 1 :(得分:0)

这是不可能的,因为您已经在代码中定义了:loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Information);

您可以将想法发布在feedback中。