为什么我的.NET Core日志消息未显示在Azure中?

时间:2020-06-06 23:37:49

标签: c# azure logging .net-core

我尝试了各种尝试使日志显示在Azure中,但是没有任何效果。我最近的尝试是:
https://ardalis.com/configuring-logging-in-azure-app-services/

我将此添加到了我的项目中:
https://www.nuget.org/packages/Microsoft.Extensions.Logging.AzureAppServices

在Programs.cs中,我这样做:

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>()
                .ConfigureLogging(logging =>
                {
                    logging.ClearProviders();
                    logging.AddConsole();
                    logging.AddAzureWebAppDiagnostics();
                });
            });

我在API控制器方法中有这行,称为:

_logger.LogWarning("Test warning logging.");

我也尝试过这种记录方式:

Trace.TraceWarning("Test warning logging (trace).");

我的Azure应用服务日志设置如下:

enter image description here

但是,当我进入日志流时,从来没有任何消息:

enter image description here

我不知道下一步该怎么做。

1 个答案:

答案 0 :(得分:1)

在您的Programs.cs中,ConfigureLogging(logging=>{xxx})不应放在ConfigureWebHostDefaults内。您应该在Programs.cs中使用以下代码:

 public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureLogging(logging=> {
                    logging.ClearProviders();
                    logging.AddConsole();
                    logging.AddAzureWebAppDiagnostics();
                })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });

然后我正在使用以下代码行发送日志:

_logger.LogInformation("this is an information from index page...");

然后在azure门户中,出现消息:

enter image description here