Datei auf neuen Inhalt überprüfen, aber
Verfasst: Dienstag 1. Dezember 2009, 05:28
das sollte möglichst in "Echtzeit" geschehen.
Hi erstmal
,
folgendes Problem:
Ich möchte den letzten Eintrag einer Logdatei auslesen. Das sollte am besten so geschehen, dass sobald eine neue Zeile ins Log geschrieben wurde, mein Python Script das merkt und diese Zeile einliest.
Ich weiss, dass die per select (und dem event POLLIN) auf Netzwerk-Sockets möglich ist. Funtkioniert natürlich nicht mit "normalen" file-descriptoren.
Ich könnte natürlich per while 1: und read() die quasi immer lesen, das mag die CPU allerdings nicht so... (sprich 100% Auslastung)
Bietet Python dafür irgendwie ne fertige Lösung oder müsste ich tatsächlich einen kleinen "Server" schreiben, welcher das Log per select usw. liest, das ganze dann ins loopback leitet und von da ab ein "client" die Daten entgegen nimmt?
Meine aktuelle Lösung liest die letzte Zeile der Datei in einem Zeitintervall, was prinzipiell auch gut funktioniert. Allerdings will ich möglichst zeitnach, sprich sofort, auf neue Einträge im Log reagieren.
Falls ihr Vorschläge, Ideen oder sogar Lösungen habt, nur her damit
OTR
Hi erstmal

folgendes Problem:
Ich möchte den letzten Eintrag einer Logdatei auslesen. Das sollte am besten so geschehen, dass sobald eine neue Zeile ins Log geschrieben wurde, mein Python Script das merkt und diese Zeile einliest.
Ich weiss, dass die per select (und dem event POLLIN) auf Netzwerk-Sockets möglich ist. Funtkioniert natürlich nicht mit "normalen" file-descriptoren.
Ich könnte natürlich per while 1: und read() die quasi immer lesen, das mag die CPU allerdings nicht so... (sprich 100% Auslastung)
Bietet Python dafür irgendwie ne fertige Lösung oder müsste ich tatsächlich einen kleinen "Server" schreiben, welcher das Log per select usw. liest, das ganze dann ins loopback leitet und von da ab ein "client" die Daten entgegen nimmt?
Meine aktuelle Lösung liest die letzte Zeile der Datei in einem Zeitintervall, was prinzipiell auch gut funktioniert. Allerdings will ich möglichst zeitnach, sprich sofort, auf neue Einträge im Log reagieren.
Falls ihr Vorschläge, Ideen oder sogar Lösungen habt, nur her damit

OTR