2010-05-14 96 views
2

有没有任何方法可以配置NLog来记录每个应用程序会话的信息?到目前为止,每次执行应用程序时都会将消息附加到日志文件中(WinForm)。我们想要的只是存储当前会话的信息。这意味着当应用程序启动时,在记录任何新消息之前,先前的所有消息都将被清除。这样,只有当前会话的消息才会在日志文件中可用。NLog每个会话

这是当前配置

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

感谢

回答

2

假设你只能有你的应用程序中打开的一个实例一次,你可以只使用deleteOldFileOnStartup参数:

<targets> 
    <target name="FileTarget" xsi:type="File" fileName="MainLogFile.txt" layout="${longdate} ${callsite} ${level} ${message}" deleteOldFileOnStartup="true"> 
    </targets> 
+0

Eric, 感谢您的回复。 deleteOldFileOnStartup不起作用。它没有做任何事情。 – 2010-05-14 17:41:32

+0

它的工作。谢谢 – 2010-09-09 21:21:28