Azure 服务日志流中未显示 ASP.NET Core 3.1 日志

标签 asp.net asp.net-core logging azure-web-app-service

我已经创建了一个 ASP.NET Core 3.1 应用程序。应用程序部署到 Azure 应用服务。在项目中我使用了日志记录,但问题是我无法通过 Log Stream 查看 Azure 上的日志。

下面是我的配置方式:

        public static void Main(string[] args)
    {
        var host = CreateHostBuilder(args).Build();
        var logger = host.Services.GetRequiredService<ILogger<Program>>();
        logger.LogInformation("The application has started");
        host.Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureLogging((context, logging) => {
                    logging.AddConfiguration(context.Configuration.GetSection("Logging"));
                    logging.AddConsole();
                    logging.AddDebug();
                    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>();
            });
}

这应该行得通吧?当我转到 Log Stream 时,我应该能够看到所有日志吗?如果是这样,为什么我看不到我创建的任何日志?

我不知道我的代码中发生了什么,我需要日志。

最佳答案

在 Azure 应用服务中,您的代码看起来不错,但只需确保您已启用应用程序日志记录。

enter image description here

请在此处找到更多相关信息 -

  • 启用应用程序日志记录

    • 将日志保存到文件系统。此设置将仅保持启用状态 12 小时
    • 您还可以将日志保存到 Azure Blob 存储,即使您也将日志保存到文件系统
    • 此外,您可以为要捕获的应用程序日志记录指定详细级别。这允许您将捕获的日志记录信息过滤为错误、警告、信息或详细。详细值将捕获您记录的所有信息
  • 启用 Web 服务器日志记录

    • 您可以将日志保存到文件系统或 Azure Blob 存储。
  • 如果你保存到文件系统

    • 您可以选择输入日志文件的最大大小(配额)
    • 您可以选择输入网络服务器日志应保留的天数。 默认情况下,Web 服务器日志会无限期保留
  • 启用详细错误消息

    • 这些默认保存到文件系统
  • 启用失败请求跟踪

    • 这些也默认保存到文件系统

更多信息:请看这个doc reference.

关于Azure 服务日志流中未显示 ASP.NET Core 3.1 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63793874/

相关文章:

c# - 有没有办法创建一个 Accept 属性来强制执行 ASP.NET Core Controller Action 中的 Accept header 检查?

java - 我可以使用多个 Play Server 实例来记录磁盘上的同一文件吗?

asp.net - 如何将 TextBox 双向绑定(bind)到 ASP.NET 中的代码隐藏属性?

asp.net - 为什么我的 ASPX 页面在编译后加载速度如此之慢?

azure-web-app-service - 在 Azure 上的 ASP.NET 5 中访问连接字符串

python - python 日志模块的日志记录问题

java - 使用 slf4j Logger 记录所有 HashMap 键和值

c# - 将数据从一页发送到另一页

Asp.Net 网站在 Internet Explorer 中运行正常,但在 Firefox 中运行不正常

asp.net - http 服务器的责任与使用此服务器托管的 Web 应用程序的责任