首页 > 解决方案 > 我需要如何登录才能在应用服务日志中查看我的日志

问题描述

我已启用日志记录到应用程序日志记录到文件系统和 Blob。ILogger<T>.LogInformation()我使用和记录消息Trace.WriteLine()。这些在 blob 中都不可见。我也无法在文件系统上找到它们。当我启用日志流时,我也看不到它们。

我需要在我的 ASP.NET Core 应用程序中配置一些东西吗?

标签: azureasp.net-core.net-coreazure-web-app-serviceazure-app-service-envrmnt

解决方案


提供[Microsoft.Extensions.Logging.AzureAppServices][1]程序包将日志写入 Azure 应用服务应用文件系统中的文本文件以及 Azure 存储帐户中的 Blob 存储。

提供程序包不包含在共享框架中。要使用提供程序,请将提供程序包添加到项目中。

要配置提供程序设置,请使用AzureFileLoggerOptionsAzureBlobLoggerOptions,如以下示例所示:

public static void Main(string[] args)
{
    var host = CreateHostBuilder(args).Build();

    var todoRepository = host.Services.GetRequiredService<ITodoRepository>();
    todoRepository.Add(new Core.Model.TodoItem() { Name = "Feed the dog" });
    todoRepository.Add(new Core.Model.TodoItem() { Name = "Walk the dog" });

    var logger = host.Services.GetRequiredService<ILogger<Program>>();
    logger.LogInformation("Seeded the database.");

    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>();
        });

您可以参考以下链接以获取更多参考:

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1#azure-app-service-provider

希望能帮助到你。


推荐阅读