Azure / Blob 存储中带有 RollingFileAppender 的 log4net

log4net with RollingFileAppender in Azure / Blob Storage

我在我的网络应用程序中使用 log4net 我们正在通过云服务(而非应用程序服务)部署它。

我的理解是我将无法访问磁盘上的日志文件(此外,这些文件无论如何都不是永久性的)。

我的阅读是使用Blob存储。但是我没有看到任何关于如何执行此操作的代码。有一个nuget包 https://www.nuget.org/packages/log4net.Appender.Azure 但文档说它为每个日志条目创建一个文件。

我要的是RollingLogFile

我基本上必须自己创建吗?比如,拉下 log4net 源代码并创建我自己的 appender 来记录到云存储帐户而不是磁盘?看起来工作量很大,会想到有人已经编写了此功能的代码吗?

谢谢。

This project 与我们分享了一些示例,这些示例使用 AzureBlobAppender 或 AzureAppendBlobAppender for log4Net 在 Azure Blob 存储中存储日志条目。

根据代码,我们可以发现 AzureBlobAppender 会为 Azure Blob 存储中的每个日志实体创建单独的 xml 文件,但是 AzureAppendBlobAppender 会通过调用 [=12] 将一天内生成的日志存储在一个日志文件中=] 将新的日志数据块附加到现有 blob 的末尾。

如果您不想为每个日志条目创建一个 xml 文件,您可以尝试使用 AzureAppendBlobAppender。

private static string Filename(string directoryName){
    return string.Format("**{0}/{1}.entry.log.xml**",
                            directoryName,
                            DateTime.Today.ToString("yyyy_MM_dd",
                            DateTimeFormatInfo.InvariantInfo));
}