【发布时间】:2014-01-05 10:54:59
【问题描述】:
我有一个简单的应用程序:
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(将 keepFileOpen 属性设置为 true) - 我可以删除它。更糟糕的是 - 日志文件在被删除后不会重新创建。因此,如果用户不小心删除了该文件 - 在重新启动应用程序之前(或更一般的情况下,直到出现新的日志文件名)才会有日志记录。
有没有办法让 NLog 锁定日志文件,或者至少在它们被删除后重新创建它们?
【问题讨论】:
标签: c# logging configuration nlog