0
我有一个简单的应用程序:不允许用户删除日志文件
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锁定日志文件或至少在它们被删除后重新创建它们?