Я наконец понял это сам. Мне нужно было добавить настройку AzureFileLoggerOptions. Без этих параметров ничего не отображается в выводе Azure.
.ConfigureLogging(logging => logging.AddAzureWebAppDiagnostics())
.ConfigureServices(serviceCollection => serviceCollection
.Configure<AzureFileLoggerOptions>(options =>
{
options.FileName = "azure-diagnostics-";
options.FileSizeLimit = 50 * 1024;
options.RetainedFileCountLimit = 5;
}).Configure<AzureBlobLoggerOptions>(options =>
{
options.BlobName = "log.txt";
})
)
В итоге, для. Net Core 3.1, чтобы ваши сообщения отображались в «потоке журналов», вам нужно включить «Ведение журнала приложений» в разделе «Журналы приложений» Azure. В вашем коде вам нужно сослаться на:
с использованием Microsoft.Extensions.DependencyInjection;
с использованием Microsoft.Extensions.Logging.AzureAppServices;
Также, в моем случае, я используя Blazor / SignalR и не имея контроллера MVC, поэтому я не мог понять, как получить доступ к инфраструктуре ведения журнала в моем классе. Я уверен, что есть лучший способ, но, выставив ILogger, как в приведенном ниже коде, я смог ссылаться на него из любого места в моей базе кода.
У меня есть метод stati c, который я вызываю для записи в журнал (консоль, когда я активно отлаживаю на моем p c, или Azure "Log Stream" при запуске в Azure:
public static void WriteToLog(string message)
{
Program.Logger.LogError(message);
}
Код в моем Program.cs выглядит следующим образом :
public class Program
{
public static ILogger Logger;
public static void Main(string[] args)
{
//CreateHostBuilder(args).Build().Run();
var host = CreateHostBuilder(args).Build();
var LoggerF = LoggerFactory.Create(builder =>
{
builder.AddFilter("BlazorDiceRoller", LogLevel.Warning)
.AddConsole().AddAzureWebAppDiagnostics()
.AddFilter("Microsoft", LogLevel.Warning)
.AddFilter("System", LogLevel.Warning);
});
Logger = LoggerF.CreateLogger<Program>();
host.Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(logging => logging.AddAzureWebAppDiagnostics())
.ConfigureServices(serviceCollection => serviceCollection
.Configure<AzureFileLoggerOptions>(options =>
{
options.FileName = "azure-diagnostics-";
options.FileSizeLimit = 50 * 1024;
options.RetainedFileCountLimit = 5;
}).Configure<AzureBlobLoggerOptions>(options =>
{
options.BlobName = "log.txt";
})
)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}