【问题标题】:How to set NLog max file size?如何设置 NLog 最大文件大小?
【发布时间】:2018-05-24 05:42:32
【问题描述】:

NLog 中是否有任何选项/配置来设置最大日志文件大小(例如 5MB)?

我需要的是,当日志文件超过最大大小(我定义的)时,它将备份旧的(以时间戳作为文件名),并开始写入新的。

如何做到这一点? 我更喜欢某种内置配置,但如果没有,可以手动安全地完成而不损坏日志文件吗?

【问题讨论】:

标签: c# logging nlog


【解决方案1】:

您可以设置archiveNumbering="DateAndSequence"archiveAboveSize="5000000"

<targets>
  <target xsi:type="File"
          archiveNumbering="DateAndSequence"
          archiveAboveSize="5000000"
          // other config
</targets>

如果您使用的是archiveAboveSize,请参阅here 的此说明

archiveAboveSize - 日志文件的大小(以字节为单位) 自动存档。长期警告:启用此选项可以 在多进程场景中大大减慢您的文件日志记录。 如果只有一个进程将写入文件,请考虑 将 ConcurrentWrites 设置为 false 以获得最佳性能。警告: 不支持将此模式与存档编号日期结合使用。 存档文件不合并。 DateAndSequence 将起作用

【讨论】:

    【解决方案2】:

    archiveAboveSize 应该可以解决问题。它设置将用作归档条件的大小(字节)...
    如果要将archiveFileName设置为时间戳,可以使用${ticks}。但我更喜欢将日期与序列号结合起来,以获得更好的可读性。

    【讨论】:

      【解决方案3】:

      从 4.5.7 版开始,您可以组合 archiveAboveSizearchiveNumbering="Date"

      日期 - 日期样式编号。日期格式根据 archiveDateFormat 的值。

      • 警告:在 NLog 版本之前。 4.5.7 那么这将无法与archiveAboveSize 一起使用。较新的版本将正确合并到
        存档中的现有文件。

      https://github.com/nlog/NLog/wiki/File-target#size-based-file-archival

      【讨论】:

      • 欢迎来到 SO。您的答案与已经给出和接受的答案有何不同?如果您认为接受的答案很好,一旦您有足够的声誉,您可以投票
      猜你喜欢
      • 2021-07-16
      • 2016-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多