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
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>