Ho un file di registro che registra continuamente brevi righe. Ho bisogno di sviluppare un servizio che reagisca (o sondaggi, o ascolti) a nuove linee aggiunte a quel file, una sorta di programma di coda di Unix, in modo che il mio servizio sia sempre aggiornato sul file.C#: coda come programma per il file di testo
Non penso che aprire un flusso di lettura e mantenerlo aperto sia una buona idea. Forse dovrei usare la classe FileSystemWatcher.
Per farla breve, ho bisogno di analizzare in tempo reale ogni nuova riga aggiunta a questo file.
Qualsiasi idea di aiuto o indicazione è molto apprezzata.
EDIT
Come sono stato non molto chiaro. Non ho bisogno di alcun programma, sono scrivendo un programma. Per leggere (quindi elaborare) ogni nuova riga aggiunta al file. Intendo dire che quello che sto cercando è una metodologia (o: come implementarla?) Per un continuo tailing un file che continua a essere scritto.
Devo sviluppare un servizio Windows che "ascolta" questo file e fa operazioni su ogni nuova riga.
Quindi, se in un dato momento in cui il file è:
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
nel momento stesso in cui la linea di
12.32.11 - pchorr [log on] 127
viene aggiunto nel file di registro dal programma di registrazione (che ho non ho accesso a), ho bisogno del mio servizio Windows per "reagire" alla dipendenza dalla linea, intercettare la nuova linea (12.32.11 - pchorr [log on] 127
) ed elaborarla. E così via.
Ora, non so come farlo. Dovrei eseguire il polling del file ogni n secondi, memorizzare l'ultima riga di lettura in memoria ed elaborare solo le righe appena aggiunte. Il problema con questo è che è molto lento, inoltre dovrei leggere un file molto grande ogni volta.
O forse potrei usare FileSystemWatcher
, ma non ho trovato alcun esempio di utilizzo per scopi simili.
Quindi, cosa suggeriresti di portare a termine il lavoro? Grazie.
Perché non si può usare la coda? – Alan
Penso che voglia fare una sorta di elaborazione sulle linee che vengono aggiunte al file di log non semplicemente visualizzarle come fa tail e vorrebbe sapere il modo migliore per monitorare il log e leggere le righe. – drs9222