using System;using System.IO;namespace ConsoleApplication1{ public class LogReader { private readonly FileSystemWatcher _watcher; private readonly StreamReader _reader; //--------------------------------------------------------------------- public LogReader(string logFileFullName) { _watcher = new FileSystemWatcher(); _watcher.Path = Path.GetDirectoryName(logFileFullName); _watcher.Filter = Path.GetFileName(logFileFullName); _watcher.NotifyFilter = NotifyFilters.LastWrite; _watcher.Changed += watcher_Changed; FileStream fs = new FileStream( logFileFullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); _reader = new StreamReader(fs); } //--------------------------------------------------------------------- void watcher_Changed(object sender, FileSystemEventArgs e) { this.LogEntryAdded(_reader.ReadLine()); } //--------------------------------------------------------------------- public void Start() { _watcher.EnableRaisingEvents = true; } //--------------------------------------------------------------------- public void Stop() { _watcher.EnableRaisingEvents = false; } //--------------------------------------------------------------------- public event Action<string> LogEntryAdded = delegate { }; }}