我创建了简单的WPF控件来监视日志文件中的更改.我使用FileSystemWatcher观看特定文件.我的配置:
Directory = System.IO.Path.GetDirectoryName(logFileFullPath);
Filter = System.IO.Path.GetFileName(logFileFullPath);
NotifyFilter = (NotifyFilters.LastWrite | NotifyFilters.Size);
EnableRaisingEvents = true;
问题在于,仅在手动刷新目录或打开日志文件后才显示更改.
我在log4net配置中使用RollingFileAppender,因此更改应立即写入.
问题是:为什么它不起作用以及如何使其起作用?
编辑:
另外,当我手动更新其他受监视文件时,观察程序也能正常工作.因此,这一定是一些log4net问题.
解决方法:
我终于想出了解决方案.该问题与FileSystemWatcher无关.我的log4net配置缺少这一行:
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
仍然很有趣,因为我从文本编辑器打开日志文件没有问题.