NLog
中是否有任何选项/配置来设置最大日志文件大小(例如5MB)?
我需要的是,当日志文件超过最大大小(我定义)时,它将备份旧文件(带有时间戳作为文件名),并开始写入新文件。
如何做到这一点? 我更喜欢某种内置配置,但如果没有,可以手动安全地完成,而不会破坏日志文件吗?
答案 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 版开始,您可以组合 archiveAboveSize
和 archiveNumbering="Date"
:
日期 - 日期样式编号。日期格式按照 archiveDateFormat 的值。
https://github.com/nlog/NLog/wiki/File-target#size-based-file-archival