首页 > 解决方案 > Microsoft.Extensions.Logging.AzureAppServices 未显示在 Azure 日志流中

问题描述

我觉得我已经尝试了所有方法来获取 Azure 门户中显示的日志消息。

我已经在我的项目中安装了相关的 NuGet 包:

Microsoft.ApplicationInsights.AspNetCore

我已启用 Azure 门户中的日志记录。

在此处输入图像描述

我已将以下内容添加到我的appsettings.json

"AzureLogging": {
    "FileName": "azure-diagnostics-",
    "FileSizeLimit": 50024,
    "RetainedFileCountLimit": 5
  }

并添加以下设置代码Startup以确保它已添加其中之一。

        services.Configure<AzureFileLoggerOptions>(options => 
        {
            options.FileName = "azure-diagnostics-";
            options.FileSizeLimit = 50 * 1024;
            options.RetainedFileCountLimit = 5;
        });

我能从我的日志中得到的唯一信息是:

在此处输入图像描述

标签: azureasp.net-coreloggingazure-web-app-serviceazure-app-service-envrmnt

解决方案


在您的 Startup.cs -> Configure 方法中,您应该添加以下代码行:

loggerFactory.AddAzureWebAppDiagnostics();
loggerFactory.AddConsole();

这是我的 Startup.cs 中 Configure 方法的代码:

        public void Configure(IApplicationBuilder app, IHostingEnvironment env,ILoggerFactory loggerFactory)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            //add the following 2 lines of code.
            loggerFactory.AddAzureWebAppDiagnostics();
            loggerFactory.AddConsole();


            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseCookiePolicy();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
        }

发布到 azure -> 启用应用程序日志记录(文件系统)后,在 Log Stream 中,我可以看到日志的输出(我在测试中将日志级别设置为详细):

在此处输入图像描述


推荐阅读