小编rfa*_*fa3的帖子

ILogger 不尊重 Application Insights 的日志级别

我一直在尝试使用 ASP.NET Core 2.0 应用程序设置 Application Insights。在本地运行我的应用程序时,日志按预期显示在 Application Insights 中。但是,当部署到 Azure 应用服务时,在将日志发送到 Application Insights 中的“请求”表时,“异常”或“跟踪”中不会显示任何日志。

似乎解决此问题的唯一方法是将以下代码行添加到 Startup.Configure():

            loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Information);
Run Code Online (Sandbox Code Playgroud)

上面的解决方案是不可取的,因为我们希望根据环境配置不同的日志级别,因此首选基于配置的解决方案。另外,我的猜测是问题与配置有关,因为它在本地工作正常。Azure 中没有进行任何特殊配置。

这是整个 Startup.Configure():

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseMvc();

    loggerFactory.AddApplicationInsights(app.ApplicationServices, LogLevel.Information);

}
Run Code Online (Sandbox Code Playgroud)

我的 Program.cs 如下:

namespace TestLoggingApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseApplicationInsights()
                .UseStartup<Startup>()
                .Build();
    }
}
Run Code Online (Sandbox Code Playgroud)

应用程序的 appsettings.json 文件如下(InstrumentationKey 替换为隐私):

{
  "Logging": {
    "IncludeScopes": false, …
Run Code Online (Sandbox Code Playgroud)

c# azure-application-insights .net-core azure-app-service-envrmnt asp.net-core

4
推荐指数
2
解决办法
5267
查看次数