簡體   English   中英

ASP.NET Core 應用程序日志未寫入 Azure 應用服務中的 Blob

[英]ASP.NET Core Application Logs Not Written To Blob in Azure App Service

我為 Azure 上的應用服務啟用了應用程序日志記錄到 blob。

  • 我可以從 Azure 門戶查看日志流中的日志
  • 我可以看到在我創建的 Azure 存儲帳戶中每小時都會創建一個類似xxxxx-#####.applicationLog.csv文件,但該文件實際上並不包含我的應用程序日志
  • 我嘗試在同一帳戶上啟用 Web 服務器日志記錄到存儲,並且確實有效 - 我可以在不同的文件中看到 HTTP 請求的日志
  • 我嘗試創建一個新的存儲帳戶並將其指向日志,但它沒有改變任何內容

配置詳情:

  • 該應用程序使用 ASP.NET Core 2,在 .NET Framework 4.6.1 上運行
  • 我通過以下方式在Program.cs配置日志記錄: .ConfigureLogging(log => log.AddAzureWebAppDiagnostics()) (這在 .NET Framework 而不是 .NET Core 運行時運行時顯然是必要的)

總結:當我在 Azure 門戶中以這種方式配置 Azure 存儲時,不會在 Azure 存儲中創建包含我的應用程序日志的文件。

如果要將應用程序日志寫入 Azure blob 存儲,首先需要在 Azure 門戶上啟用應用程序日志並為其配置 blob 存儲。

在此處輸入圖片說明

我們可以按照博客在 Asp.net 核心應用程序中設置日志記錄。

在 ASP.NET Core 應用中設置登錄不需要太多代碼。 ASP.NET Core 新項目模板已經在 Startup.Configure 方法中使用以下代碼設置了一些基本的日志記錄提供程序:

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

我也為它做演示。 它在我這邊工作正常。

1.在Sartup.cs文件中添加如下代碼

 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.cs中添加如下代碼

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

在此處輸入圖片說明

3.訪問主頁/索引頁面並從 Azure 存儲 blob 中檢查它。 日志 blob 名稱的最后一部分。 默認為“ applicationLog.txt ”。 我們也可以自己設置。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM