Mam plik dziennika, który stale rejestruje krótkie linie. Muszę opracować usługę, która reaguje (lub odpytuje lub słucha) na nowe wiersze dodane do tego pliku, rodzaj unixowego "programu ogonowego", więc moja usługa zawsze aktualizuje ten plik.C#: ogon jak program do pliku tekstowego
Nie sądzę, że otwarcie strumienia odczytu i podtrzymanie go jest dobrym pomysłem. Może powinienem użyć klasy FileSystemWatcher.
Krótko mówiąc, muszę analizować w czasie rzeczywistym każdą nową linię dodaną do tego pliku.
Każda pomoc lub wskazówka na temat pomysłu jest naprawdę doceniana.
EDIT
Jak byłem niezbyt jasne. Nie potrzebuję żadnego programu, jestem pisanie programu. Do czytania (następnie przetwarzania) każdej nowej linii dodanej do pliku. Mam na myśli to, czego szukam, to metodologia (lub: jak to zaimplementować?) Dla ciągłego ogłaszania pliku, który ciągle jest zapisywany.
Muszę opracować usługę Windows, która "słucha" tego pliku i wykonuje operacje na każdej nowej linii.
Tak więc, jeśli w danym momencie plik jest:
12.31.07 - jdoe [log on] 347
12.32.08 - ssmith [log on] 479
12.32.08 - mpeterson [log off] 532
12.32.09 - apacino [log on] 123
w tym samym momencie, że linia
12.32.11 - pchorr [log on] 127
jest dodawany do pliku dziennika w programie logowania (który mam brak dostępu do), potrzebuję mojej usługi Windows, aby "zareagować" na uzależnienie linii, przechwycić nową linię (12.32.11 - pchorr [log on] 127
) i przetworzyć ją. I tak dalej.
Teraz nie wiem, jak to zrobić. Powinienem odpytywać plik co n sekund, przechowywać ostatnią linię odczytu w pamięci i przetwarzać tylko nowo dodane linie. Problem polega na tym, że jest bardzo powolny, a za każdym razem czytałbym bardzo duży plik.
A może mógłbym użyć FileSystemWatcher
, ale nie znalazłem żadnego przykładu użycia go do podobnych celów.
Co sugerujesz, aby wykonać pracę? Dzięki.
Dlaczego nie możesz użyć ogona? – Alan
Myślę, że chce przeprowadzić przetwarzanie na liniach, które są dodawane do pliku dziennika, a nie po prostu wyświetlać je tak, jak robi to ogon i chciałby wiedzieć najlepszy sposób monitorowania dziennika i czytania w liniach. – drs9222