Вопрос
Есть ли способ настроить NLOG для регистрации информации на сеанс приложения? На данный момент он добавляет сообщения в файле журнала, каждая приложение выполняется (WinForm). То, что мы хотели бы иметь, это только хранить информацию о текущей сессии. Это означает, что при запусках приложений все предыдущие сообщения очищены до того, как любое новое сообщение будет зарегистрировано. Таким образом, только сообщения о текущих сессиях будут доступны в файле журнала.
Вот текущая конфигурация
<?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>
Спасибо
Решение
Предполагая, что у вас есть только один экземпляр вашего приложения, вы можете просто использовать параметр DELETEOLDFILEONSTARTUP:
<targets>
<target name="FileTarget" xsi:type="File" fileName="MainLogFile.txt" layout="${longdate} ${callsite} ${level} ${message}" deleteOldFileOnStartup="true">
</targets>
Не связан с StackOverflow