NLog – Archivia per dimensione del file

 C Programming >> Programmazione C >  >> Tags >> File
NLog – Archivia per dimensione del file

Per archiviare in base alla dimensione del file quando utilizzi NLog, puoi configurare nlog.config in questo modo:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true">


  <variable name ="logFile" value="C:/logs/servicelog-${shortdate}" />

  <targets>
    <target xsi:type="File"
            name="mainLog"
            fileName="${logFile}.log"
            layout="${longdate} level=${level} message=${message}"
            keepFileOpen ="false"
            concurrentWrites ="true"
            archiveNumbering="DateAndSequence"
            archiveAboveSize="1000000"
            maxArchiveFiles="10"/>
  </targets>

  <rules>
    <logger name="*" minlevel="Trace" writeTo="mainLog" />
  </rules>

</nlog>
Code language: HTML, XML (xml)

Specificare archiveAboveSize in byte. La configurazione sopra specifica ~1 MB.

Quando il tuo file di registro raggiunge la dimensione specificata, NLog "archiverà" il file, il che significa semplicemente che rinominerà il file di registro e avvierà un nuovo file di registro. Rinominerà il file di registro in base all'impostazione archiveNumbering . È una buona idea impostare maxArchiveFiles anche, in modo da non esaurire lo spazio su disco.

Esempio di archiviazione per dimensione del file di registro

Sto accedendo a un file di registro con la data breve nel nome. Il file di registro si chiama servicelog-2021-02-22.log.

Una volta che servicelog-2021-02-22.log raggiunge ~1 MB, NLog rinominerà servicelog-2021-02-22.log in servicelog-2021-02-22.20210222.0.log (perché archiveNumbering =DateAndSequence) e quindi crea un nuovo file chiamato servicelog-2021-02-22.log, in questo modo:

servicelog-2021-02-22.log
servicelog-2021-02-22.20210222.0.logCode language: plaintext (plaintext)

Diciamo che sto registrando tutto il giorno e ho 10 file di registro archiviati. Perché maxArchiveFiles =10, quando NLog deve archiviare nuovamente, cancellerà il file archiviato più vecchio (servicelog-2021-02-22.20210222.0.log) e creerà il nuovo file di registro archivio con il numero di sequenza successivo – servicelog-2021-02-22.20210222 .10.log.

Finirò con i seguenti file di registro:

servicelog-2021-02-22.log
servicelog-2021-02-22.20210222.10.log
servicelog-2021-02-22.20210222.9.log
servicelog-2021-02-22.20210222.8.log
servicelog-2021-02-22.20210222.7.log
servicelog-2021-02-22.20210222.6.log
servicelog-2021-02-22.20210222.5.log
servicelog-2021-02-22.20210222.4.log
servicelog-2021-02-22.20210222.3.log
servicelog-2021-02-22.20210222.2.log
servicelog-2021-02-22.20210222.1.logCode language: plaintext (plaintext)