繁体   English   中英

检测iis日志文件中的更改

[英]Detect changes in iis logs files

我在“ w3svc1”文件夹上运行一个filesystemwatcher,默认情况下iis日志存储在该文件夹中。 当我转到地址localhost或任何Webapp localhost / xxxxx时。 filesystemwatcher不会引发事件。 我知道请求和日志之间存在延迟,但是即使经过一小时,也没有引发更改事件。 但是,当我使用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打开了流并将日志写入文件,但是没有立即刷新更改。 当您在notepad ++中打开文件时,它会访问该文件,从而触发文件修改事件。 请同时参考此线程

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM