我尝试了各种尝试使日志显示在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应用服务日志设置如下:
但是,当我进入日志流时,从来没有任何消息:
我不知道下一步该怎么做。
答案 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门户中,出现消息: