【问题标题】:log4net with RollingFileAppender in Azure / Blob Storage在 Azure / Blob 存储中使用 RollingFileAppender 的 log4net
【发布时间】:2016-12-12 21:40:58
【问题描述】:

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

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

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

我想要的是 RollingLogFile。

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

谢谢。

【问题讨论】:

    标签: c# azure log4net azure-blob-storage


    【解决方案1】:

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

    根据代码,我们可以发现 AzureBlobAppender 会为 Azure Blob 存储中的每个日志实体创建单独的 xml 文件,但 AzureAppendBlobAppender 将通过调用 CloudAppendBlob.AppendBlock method 附加一个新块将一天生成的日志存储在一个日志文件中将数据记录到现有 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));
    }
    

    【讨论】:

    • 谢谢,我应该在发布之前深入研究他们的代码。它并不完全符合我的要求(即不是 RollingFileAppender 替代品),但这是我自己制作的一个很好的起点。
    猜你喜欢
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 2018-07-06
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    相关资源
    最近更新 更多