检测iis日志文件中的更改

本文关键字:文件 iis 日志 检测 | 更新日期: 2023-09-27 18:10:34

我在"w3svc1"文件夹上运行一个文件系统监视器,默认情况下iis日志存储在该文件夹中。当我访问地址localhost或任何我的webapp localhost/xxxxx。文件系统监视程序不会引发事件。我知道在请求和写入日志之间存在延迟,但即使在一个小时后也没有引发更改事件。但是,当我用notepad++打开文件时,我看到添加了日志。有人能解释一下吗?这是我的代码:

class Program
{
    static void Main(string[] args)
    {
        FileSystemWatcher watcher = new FileSystemWatcher();
        watcher.Path = @"C:'inetpub'logs'LogFiles'W3SVC1";            
        watcher.NotifyFilter = NotifyFilters.LastWrite;
        watcher.IncludeSubdirectories = true;            
        watcher.Filter = "*.log";            
        watcher.Changed += new FileSystemEventHandler(OnChangedok);
        watcher.Created += new FileSystemEventHandler(OnChangedok);
        watcher.EnableRaisingEvents = true;
        Console.WriteLine("Press ''q'' to quit the sample.");
        while (Console.Read() != 'q') ;

    }
    private static void OnChangedok(object source, FileSystemEventArgs e)
    {            
        Console.WriteLine(e.FullPath);         
    }

检测iis日志文件中的更改

这是因为IIS打开流并将日志写入文件,但没有立即刷新更改。当您在notepad++中打开文件时,它会访问该文件,从而触发文件修改事件。