【发布时间】:2020-08-14 01:18:25
【问题描述】:
我有一个在 Microsoft Azure 应用服务上运行的 ASP.NET Core 3.1 API。
我在应用程序中设置了ILogger,并广泛使用它来监控 API 的行为。我希望能够在应用门户的 Azure 日志流中实时查看这些消息。
将AzureWebAppDiagnostics注册到Program.cs后,我设法获取日志如下:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddConsole();
logging.AddAzureWebAppDiagnostics();
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
}
问题是我使用
明确记录的消息logger.LogInformation("whatever message")
与系统消息混合并被淹没:实体框架命令、Microsoft.Hosting.Lifetime 消息和多个其他信息性消息。
如何设置系统,使我只从系统中获取错误/警告消息,并从我的应用代码中获取信息性消息。
我尝试将appsettings.json更改如下,但似乎完全没有效果:
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Error",
"Microsoft.Hosting.Lifetime": "Error",
"Microsoft.*": "Error",
"System": "Error",
"Microsoft.EntityFrameworkCore.*": "Warning"
}
}
我也删除了appsettings.development.json 文件以防万一,正如here 建议的那样。
我做错了什么?
【问题讨论】:
标签: c# azure asp.net-core