Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set NLog max file size?

Tags:

c#

logging

nlog

Is there any option/configuration in NLog to set the max log file size (for example 5MB)?

What I need is, that when the log file exceeds the max size (which I define), It will backup the old one (with a time stamp as file name), and start writing to a new one.

How can this be done? I would prefer some kind of build-in configuration, but if there is none can this be done safely manually without corrupting the log file?

like image 241
zig Avatar asked May 24 '18 05:05

zig


2 Answers

You can set archiveNumbering="DateAndSequence" and archiveAboveSize="5000000"

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

See this note from here if you are using archiveAboveSize

archiveAboveSize - Size in bytes above which log files will be automatically archived. Long Caution: Enabling this option can considerably slow down your file logging in multi-process scenarios. If only one process is going to be writing to the file, consider setting ConcurrentWrites to false for maximum performance. Warning: combining this mode with Archive Numbering Date is not supported. Archive files are not merged. DateAndSequence will work

like image 180
Hooman Bahreini Avatar answered Oct 12 '22 11:10

Hooman Bahreini


archiveAboveSize should do the trick. It sets the size (bytes) that will be used as a condition for archiving...
If you want to set archiveFileName to timestamp, ${ticks} can be used. But I would prefer combining date with sequence number, for better readability.

like image 40
Tomas Chabada Avatar answered Oct 12 '22 10:10

Tomas Chabada