簡體   English   中英

Azure 應用服務中的自定義日志記錄配置

[英]Custom Logging Configuration in Azure App Services

我們正在嘗試在 Azure 應用程序中配置過濾日志記錄,我們已將應用程序配置為保存到 blob 存儲,我們可以正常訪問和查看這些記錄。

我們目前遇到的問題是 azure 記錄所有服務中的所有信息級別日志,因此我們正在獲取路由、實體框架等的信息級別日志,對於日常日志記錄,我們真正需要的是手動登錄控制器正在做。

我一直認為我們可以在 appsettings.json 中過濾日志,如下所示:

"Logging": {
"LogLevel": {
  "Default": "Information",
  "Microsoft": "None"
}

但是在 Azure 中忽略了這一點,所有級別的日志都繼續進行,在 appsettings.development.json 中嘗試了相同的設置並得到了相同的結果。

我還在文檔中閱讀了我們可以以編程方式向 Azure Application Insights 日志添加過濾器,但這似乎也不起作用(還在 env 變量中設置了應用程序洞察連接字符串)>

builder.Services.AddApplicationInsightsTelemetry();

builder.Host.ConfigureLogging(log =>
{
    log.ClearProviders();
    log.AddFilter<ApplicationInsightsLoggerProvider>("MyAppName", LogLevel.Information);
    log.AddFilter<ApplicationInsightsLoggerProvider>("Microsoft", LogLevel.Error);
    log.AddAzureWebAppDiagnostics();
});

這也沒有提供我們希望的解決方案。 是否有需要配置的特定方式? 提前致謝!

現在解決了這個問題,感謝所有添加評論的人。 對於遇到此問題的其他人,您必須確保您的 appsettings.json 包含完整的日志記錄配置文件。 您會認為默認的 LogLevel 可以在所有應用程序中使用,但事實並非如此。

 "Logging": {
"LogLevel": { // No provider, LogLevel applies to all the enabled providers.
  "DigitalAppraisalSystem": "Information",
  "Microsoft": "Warning",
  "Microsoft.Hosting.Lifetime": "Warning"
},
"Debug": { // Debug provider.
  "LogLevel": {
    "DigitalAppraisalSystem": "Information",
    "Microsoft": "Warning",
    "Microsoft.Hosting.Lifetime": "Warning"
  }
},
"AzureAppServicesFile": {
  
  "LogLevel": {
    "DigitalAppraisalSystem": "Information",
    "Microsoft": "Warning",
    "Microsoft.Hosting.Lifetime": "Warning"
  }
},
"AzureAppServicesBlob": {
  
  "LogLevel": {
    "DigitalAppraisalSystem": "Information",
    "Microsoft": "Warning",
    "Microsoft.Hosting.Lifetime": "Warning"
  }
},
"ApplicationInsights": {
  "LogLevel": {
    "DigitalAppraisalSystem": "Information",
    "Microsoft": "Warning",
    "Microsoft.Hosting.Lifetime": "Warning"
  }
}

除此之外,Program.cs 還需要配置這些日志,特別是:

builder.Host.ConfigureLogging((hostingContext, log) =>
{
    log.ClearProviders();
    log.AddAzureWebAppDiagnostics();
    log.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
    log.AddConsole();
    log.AddDebug();
    log.AddEventSourceLogger();
});

現在 Azure 中的日志過濾正在按預期工作,並且 blob 存儲沒有填充路由跟蹤以及導致無法查看我們自己的用戶操作的所有其他問題。

暫無
暫無

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

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