我有一个.netcore 2.1 API。我正在尝试在Azure Blob中进行一些记录。
我一直在.netcore 2.2 api中使用Microsoft.Extensions.Logging.AzureAppServices(2.2.0版)完全没有问题,它可以将信息漂亮地记录到Azure blob。
但是,当我在.netcore 2.1中使用Microsoft.Extensions.Logging.AzureAppServices(版本2.1.1)尝试相同的代码时,它无法记录信息(即使我从API端点获得了所需的信息)。
我在program.cs中尝试过的代码
public static void Main(string[] args)
{
var host = CreateWebHostBuilder(args).Build();
var logger = host.Services.GetRequiredService<ILogger<Program>>();
logger.LogInformation("Main() method.");
host.Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.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";
}))
.UseStartup<Startup>();
}
天蓝色后,我添加了如下图所示的设置。
现在要对其进行测试,我已经在starup.cs,program.cs和controller.cs中添加了一些日志记录。
来自Startup.cs的日志被打印到输出Blob中,但其他CS文件无法将信息记录到Blob中。
有人知道我在做什么错吗?
答案 0 :(得分:0)
要配置提供程序设置,请使用AzureFileLoggerOptions和AzureBlobLoggerOptions,如以下示例所示:
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.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";
}))
.UseStartup<Startup>();
或如下所示:
public void ConfigureServices(IServiceCollection services)
{
//...
services.Configure<AzureFileLoggerOptions>(Configuration.GetSection("AzureLogging"));
}
Appsettings.json
"AzureLogging": {
"FileName" : "azure-diagnostics-",
"FileSizeLimit": 50024,
"RetainedFileCountLimit": 5
}
当您部署到App Service应用程序时,该应用程序将接受Azure门户的App Service页面的App Service日志部分中的设置。更新以下设置后,更改将立即生效,而无需重新启动或重新部署应用程序。
请确保进行上述设置。希望有帮助。