使用FileSystemWatcher查看log4net日志文件

我已经创建了简单的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配置缺乏这条线:

  

它仍然非常有趣,因为我从文本编辑器打开日志文件没有问题。

试试这个代码,

  FileSystemWatcher watcher = new FileSystemWatcher(@"logFileDirectoryPath"); watcher.Filter = "LogFileNameWithExtension"; watcher.EnableRaisingEvents = true; watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.Size; watcher.Changed += new FileSystemEventHandler(watcher_Changed); 

Changed Event

  private void watcher_Changed(object sender, FileSystemEventArgs e) { //Do Something }