Domanda

C'è un modo per configurare NLog per registrare le informazioni per sessione di applicazione? A partire da ora si aggiunge i messaggi nel file di registro viene eseguito ogni applicazione in tempo (WinForm). Quello che ci piacerebbe avere è quello di memorizzare solo le informazioni della sessione corrente. Il che significa che quando lanci di applicazione, tutti i messaggi precedenti vengono cancellati prima di ogni nuovo messaggio viene registrato. In questo modo solo i messaggi di sessioni correnti sarà disponibile nel file di registro.

Questa è la configurazione corrente

 <?xml version="1.0"?>
<nlog autoReload="true" xmlns="http://www.nlog-project.org/schemas/NLog.xsd"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <targets>
    <target name="FileTarget" xsi:type="File" fileName="MainLogFile.txt" layout="${longdate} ${callsite} ${level} ${message}"/>/>
  </targets>
  <rules>
    <logger name="*" levels="Trace,Info,Warn,Error,Debug,Fatal" writeTo="FileTarget"/>
  </rules>
</nlog>

Grazie

È stato utile?

Soluzione

Supponendo che si può avere una sola istanza della vostra applicazione aperta in una sola volta, si può semplicemente utilizzare il parametro deleteOldFileOnStartup:

  <targets>
    <target name="FileTarget" xsi:type="File" fileName="MainLogFile.txt" layout="${longdate} ${callsite} ${level} ${message}" deleteOldFileOnStartup="true">
  </targets>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top