سؤال
هل هناك أي طريقة لتكوين 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>
شكرًا
المحلول
على افتراض أنه يمكنك فتح مثيل واحد فقط من التطبيق الخاص بك في وقت واحد ، يمكنك فقط استخدام معلمة DeleToLdFileonStartup:
<targets>
<target name="FileTarget" xsi:type="File" fileName="MainLogFile.txt" layout="${longdate} ${callsite} ${level} ${message}" deleteOldFileOnStartup="true">
</targets>
لا تنتمي إلى StackOverflow