У меня есть простое приложение:Не разрешать пользователям удалять файлы журнала
public class Program
{
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
public static void Main(string[] args)
{
while (true)
{
Logger.Info(DateTime.Now.ToString());
Thread.Sleep(5000);
}
}
}
и конфигурации:
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="logfile" xsi:type="File" fileName="C:\Logs\log.txt" keepFileOpen="true" />
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="logfile" />
</rules>
</nlog>
Но NLog не кажется, чтобы заблокировать log.txt
(desipte keepFileOpen свойство быть установлен в true
) - я могу удалить его. Еще хуже - файл журнала не воссоздается после его удаления. Поэтому, если пользователь случайно удалит файл - до тех пор, пока приложение не будет перезапущено (или в более общем случае до появления нового имени файла журнала) не будет.
Есть ли способ сделать файлы журнала блокировки NLog или хотя бы воссоздать их после их удаления?