C# ASP.NET Core 3.1,仅将特定消息记录到Azure日志流控制台
我有一个ASP.NET Core 3.1 API在Microsoft Azure应用程序服务上运行 我在应用程序中设置了一个C# ASP.NET Core 3.1,仅将特定消息记录到Azure日志流控制台,c#,azure,asp.net-core,C#,Azure,Asp.net Core,我有一个ASP.NET Core 3.1 API在Microsoft Azure应用程序服务上运行 我在应用程序中设置了一个ILogger,并广泛使用它来监视API的行为。我希望能够在应用程序门户的Azure日志流中实时查看这些消息 在将AzureWebAppDiagnostics注册到Program.cs中后,我成功地获取了日志,如下所示: public class Program { public static void Main(string[] args)
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>();
});
}
}
与系统消息混合并被淹没:实体框架命令、Microsoft.Hosting.life
消息和多条其他信息性消息
如何设置系统,使我只能从系统中获取错误/警告消息,并从我的应用程序代码中获取信息性消息
我尝试如下更改appsettings.json
,但似乎没有任何效果:
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Error",
"Microsoft.Hosting.Lifetime": "Error",
"Microsoft.*": "Error",
"System": "Error",
"Microsoft.EntityFrameworkCore.*": "Warning"
}
}
我还删除了appsettings.development.json
文件,以防万一
我做错了什么?配置中没有通配符。它只是一个名称空间前缀:使用Microsoft.EntityFrameworkCore作为属性名。事实上,经过仔细研究后,提供了解决方案 您需要将AzureAppServicesBlob和AzureAppServicesFile配置添加到配置文件中,它们似乎是Azure日志流考虑的配置 因此,我添加了以下部分:
"AzureAppServicesBlob": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Error",
"System": "Error"
}
},
"AzureAppServicesFile": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Error",
"System": "Error"
}
}
这不是它不工作的原因,我可以看到Hosting.life信息日志,尽管名称空间是正确的。
"AzureAppServicesBlob": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Error",
"System": "Error"
}
},
"AzureAppServicesFile": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Error",
"System": "Error"
}
}