FileSystemWatcher
ログファイルが変更されたときに通知を受け取るために使用できます
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"C:\PathOfTheLogfile";
watcher.Filter = "MyLogfile.txt"; // You can also use wildcards here.
watcher.NotifyFilter = NotifyFilters.LastWrite;
watcher.Changed += new FileSystemEventHandler(Watcher_Changed);
watcher.Created += new FileSystemEventHandler(Watcher_Changed);
watcher.EnableRaisingEvents = true; // Start watching.
...
private static void Watcher_Changed(object source, FileSystemEventArgs e)
{
if (e.ChangeType == WatcherChangeTypes.Created) {
//TODO: Read log from beginning
} else {
//TODO: Read log from last position
}
//TODO: write to MSSQL
//TODO: remember last log file position
}
FileSystemWatcher
ファイルがまだ書き込まれているときに、イベントが発生することがあります。ログ ファイルを読み取る前に、遅延を追加する必要がある場合があります。