logging.AddAzureWebAppDiagnostics()在.net core 2.2中不起作用

时间:2019-02-28 17:00:58

标签: c# asp.net-core asp.net-core-2.2

我已经将项目从.net core 2.1更新到2.2,然后logging.AddAzureWebAppDiagnostics()中的Program.cs不再起作用。

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .ConfigureLogging((hostingContext, logging) =>
            {
                logging.AddAzureWebAppDiagnostics();
            })

            .UseStartup<Startup>()
            .Build();
}
  

'ILoggingBuilder'不包含'AddAzureWebAppDiagnostics'的定义,找不到可以接受的扩展方法'AddAzureWebAppDiagnostics'接受类型为'ILoggingBuilder'的第一个参数(您是否缺少using指令或程序集引用?

引用this document

  

如果定位.NET Framework或引用Microsoft.AspNetCore.App元包,则将提供程序包添加到项目中。在ILoggerFactory实例上调用AddAzureWebAppDiagnostics:

因此,方法可能与前一种方法略有不同。如何解决此问题?

1 个答案:

答案 0 :(得分:1)

documentation有点棘手,但是如果仔细阅读,很显然应该采取以下步骤(对于 NET Core ):

  1. Microsoft.Extensions.Logging.AzureAppServices应该已安装
  2. 无需致电logging.AddAzureWebAppDiagnostics();
  3. 可以使用以下代码配置日志记录

    // file startup.cs
    using Microsoft.Extensions.Logging.AzureAppServices;
    
    public class Startup
    {
        public void ConfigureServices(IServiceCollection services)
        {
            //...
            services.Configure<AzureFileLoggerOptions>(Configuration.GetSection("AzureLogging"));
        } 
    }
    

    文件appsettings.json应该包含

    "AzureLogging": {
         "FileName" : "azure-diagnostics-",
         "FileSizeLimit": 50024,
         "RetainedFileCountLimit": 5
    }
    
  4. 应该在Azure门户上打开日志记录。启用后,Azure Portal可能会要求安装插件。需要安装插件的消息将显示在日志配置页面上。

enter image description here

  1. 在代码中调用logger.LogWarning ("message");以写入日志文件。如果您使用LogWarning,请确保将“级别”设置为“警告”或更详细(信息或调试)