如何设置NLog最大文件大小?

时间:2018-05-24 05:42:32

标签: c# logging nlog

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

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

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

3 个答案:

答案 0 :(得分:7)

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

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

如果您使用 archiveAboveSize

,请从here查看此说明
  

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

答案 1 :(得分:2)

archiveAboveSize应该做到这一点。它设置将用作归档条件的大小(字节)...
如果要将archiveFileName设置为时间戳,可以使用${ticks}。但我更希望将日期与序列号相结合,以提高可读性。

答案 2 :(得分:0)

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

<块引用>

日期 - 日期样式编号。日期格式按照 archiveDateFormat 的值。

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

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