Bonjour.
J'ai actuellement un problème que je n'arrive pas à résoudre. J'essaye de détecter un changement dans le fichier "access.log" qui contient mes logs Apache (sous Windows).
Le problème est que la méthode "FileChanged" n'est pas appelée à chaque fois qu'Apache écrit dans ce fichier.
J'ai essayé de faire un tail sur ce même fichier avec un autre outil, et ce dernier détecte bien les changements tandis que mon prog ne détecte rien.
Autre remarque : Mon prog est en marche et que je sais que des messages ont été générés. Si je vais dans l'explorateur Windows et que je clique une fois sur ce fichier access.log, mon prog détecte un changement, comme s'il fallait "titiller" un peu ce fichier pour pouvoir détecter des changements.
Quelqu'un a-t-il une idée?
D'avance merci.
Mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 static void Main() { FileSystemWatcher _watcher = new FileSystemWatcher(); _watcher = new FileSystemWatcher("C:\\Program Files (x86)\\Apache Software Foundation\\Apache2.2\\logs", "access.log"); _watcher.Changed += new FileSystemEventHandler(FileChanged); _watcher.EnableRaisingEvents = true; _watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.Size; Console.ReadLine(); } static void FileChanged(object sender, FileSystemEventArgs args) { Console.WriteLine("Changement détecté"); }
Partager