【问题标题】:Set log file limit with log4net and azure file appender使用 log4net 和 azure file appender 设置日志文件限制
【发布时间】:2017-07-17 18:41:48
【问题描述】:

我目前正在使用 log4net 和 azure 文件来存储我的日志,效果很好。

我一直在搜索,但找不到任何配置来使记录器创建不大于给定 KB 大小的文件。

这是我的配置:

  <rollingStyle value="Size" />
  <MaxSizeRollBackups value="10" />
  <MaximumFileSize value="10KB" />

  <AzureStorageConnectionString value="connectiondatahere" />
  <ShareName value="filelog" />
  <Path value="processor" />
  <File value="processor_{yyyy-MM-dd}.txt" />
  <layout type="log4net.Layout.PatternLayout">
    <ConversionPattern value="%date %-5level %logger %message%newline"/>
  </layout>
</appender>
<root>
  <level value="ALL" />
  <appender-ref ref="AzureFileAppender"/>
</root>

我已经尝试了这种配置的一些变体,但都没有成功。

【问题讨论】:

    标签: azure log4net azure-storage-files


    【解决方案1】:

    查看log4net-appender-azurefilestorage的源代码后,我发现azure file appender目前不支持日志文件大小限制。建议你自己重写 azure file appender 并添加大小限制功能。

    以下是执行此操作的步骤。

    第 1 步,将名为 MaximumFileSize 的属性添加到 AzureFileAppender 类。

    public int MaximumFileSize { get; set; }
    

    第二步,添加日志到文件时的大小限制代码。

    protected override void Append(LoggingEvent loggingEvent)
    {
        Initialise(loggingEvent);
        var buffer = Encoding.UTF8.GetBytes(RenderLoggingEvent(loggingEvent));
    
        if ((_file.Properties.Length + buffer.Length) > MaximumFileSize)
        {
            //do something if the file reach the max file size
        }
        else
        {
            _file.Resize(_file.Properties.Length + buffer.Length);
            using (var fileStream = _file.OpenWrite(null))
            {
                fileStream.Seek(buffer.Length * -1, SeekOrigin.End);
                fileStream.Write(buffer, 0, buffer.Length);
            }
        }
    }
    

    第 3 步,之后,您可以将大小限制(每字节)添加到配置文件中。

    <MaximumFileSize value="10240" />
    

    【讨论】:

    • 有什么更新吗?如果您对此主题还有其他问题,请随时告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 2016-03-28
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 2011-07-31
    • 2010-11-19
    相关资源
    最近更新 更多