代码之家  ›  专栏  ›  技术社区  ›  Zout

ASP。NET Core应用程序日志未写入Azure应用程序服务中的Blob

  •  5
  • Zout  · 技术社区  · 8 年前

    我已经为Azure上的应用程序服务启用了应用程序登录blob。

    • 我可以从Azure门户查看日志流中的日志
    • 我可以看到像这样的文件 xxxxx-#####.applicationLog.csv
    • 我尝试在同一个帐户上启用Web服务器日志记录到存储,这确实有效-我可以在不同的文件中看到HTTP请求的日志

    配置详细信息:

    • 我配置登录 Program.cs 通过: .ConfigureLogging(log => log.AddAzureWebAppDiagnostics()) (在.NET Framework而不是.NET核心运行时上运行时,这显然是必要的)

    总之:当我在Azure门户中以这种方式配置Azure存储时,不会在Azure存储中创建包含我的应用程序日志的文件。

    1 回复  |  直到 8 年前
        1
  •  3
  •   Leniel Maccaferri    4 年前

    如果我们想将应用程序日志写入Azure blob存储,首先需要在Azure门户上启用应用程序日志并为其配置blob存储。

    enter image description here

    我们可以遵循 blog 在Asp中设置日志记录。net core应用程序。

    在ASP中设置日志记录。NET Core应用程序不需要太多代码。ASP。NET核心新项目模板已经在启动时使用此代码设置了一些基本日志提供程序。配置方法:

    loggerFactory.AddConsole(Configuration.GetSection("Logging")); 
    loggerFactory.AddDebug();
    

    我也为它做了演示。对我来说,它工作正常。

     loggerFactory.AddConsole(Configuration.GetSection("Logging"));
                loggerFactory.AddDebug();
                loggerFactory.AddAzureWebAppDiagnostics(
                    new AzureAppServicesDiagnosticsSettings
                    {
                        OutputTemplate = "{Timestamp:yyyy-MM-dd HH:mm:ss zzz} [{Level}] {RequestId}-{SourceContext}: {Message}{NewLine}{Exception}",
    
                    }
                );
    

    2.在HomeController中添加以下代码。反恐精英

     private readonly ILogger _logger;
     public HomeController(ILoggerFactory loggerFactory)
     {
         _logger = loggerFactory.CreateLogger<HomeController>();
     }
    
     public IActionResult Index()
     {
        _logger.LogInformation("Log information");
        _logger.LogError("Logger error");
        return View();
     }
    

    enter image description here

    3.访问主页/索引页并从Azure存储blob中进行检查。日志blob名称的最后一部分。默认为“ 应用程序日志。txt文件 “。我们也可以自己设置。

    enter image description here

    推荐文章