如何修改Azure Web App诊断日志的Blob存储路径

时间:2017-08-29 12:14:41

标签: c# .net azure-storage azure-storage-blobs azure-diagnostics

我有一个部署在Microsoft Azure上的.Net Core 2.0 Web服务。在我的应用程序中,我使用Azure Web App Diagnostics将日志存储在Blob存储中。

日志文件按小时分割。目前,blob文件路径类似于{year} / {month} / {date} / {hour} / {filename}。每小时都有一个新文件夹。

我想更改此存储路径并将每日日志存储在一个文件中。我正在使用 LoggerFactory 进行日志记录。我在 Startup.cs

中的配置方法中添加了 AzureWebAppDiagnostics
loggerFactory.AddAzureWebAppDiagnostics(
            new AzureAppServicesDiagnosticsSettings
            {
                OutputTemplate = "{Timestamp:yyyy-MM-dd HH:mm:ss zzz} [{Level}] {RequestId}-{SourceContext}: {Message}{NewLine}{Exception}"
            }
            );

据我所知,还有其他的记录方式,例如使用NLog或SeriLog,但是有没有开箱即用的方法来做我上面提到的呢?

1 个答案:

答案 0 :(得分:1)

  

目前,blob文件路径类似于{year} / {month} / {date} / {hour} / {filename}。每小时都有一个新文件夹。我想更改此存储路径并将每日日志存储在一个文件中。

我检查了class AzureAppServicesDiagnosticsSettings并发现它只是让我们指定日志blob名称的最后一部分,它不能让我们指定blob的全名。

//
// Summary:
//     Gets or sets the last section of log blob name. Defaults to "applicationLog.txt".
public string BlobName { get; set; }

您可以open an issue跟踪状态。此外,正如您所提到的,您可以集成NLog等以将日志写入Azure存储。