AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Lesen aus Logfile, Programmabsturz

Ein Thema von peter001 · begonnen am 5. Nov 2009 · letzter Beitrag vom 5. Nov 2009
Antwort Antwort
peter001

Registriert seit: 2. Nov 2008
17 Beiträge
 
#1

Lesen aus Logfile, Programmabsturz

  Alt 5. Nov 2009, 14:52
Hallo!

Threadtitel ist nicht ganz passend, deshalb mein Problem nochmal ausführilcher:

Gesetzer Fall; eine Anwendung x schreibt einen logfile mit hoher Frequenz. (u.U. mehr als 10 Einträge die Sekunde)
Ich möchte mit einem Delphiprogramm nun praktisch den Logfile extern in nahezu Echtzeit mitverfolgen, um ihn parallel auszuwerten.
Dazu setze ich einen Timer an, der jede Sekunde den logfile einliest (memo1.loadfromfile...), verarbeitet und dann den weiteren Verlauf fortsetzt.

Erreicht der log eine bestimmte Größe (z.B. Zeilenanzahl über 1000), soll der Logfile vom Tool gelöscht/geleert werden, damit die Anwendung x beim nächsten Bedarf mit einem neuen Logfile beginnt.

Problem in der Praxis: Es kommt nach mehreren Minuten regelmäßig zum Absturz der Anwendung x, da scheinbar der Logfile zu diesem Zeitpunkt in Benutzung (des Tools) ist und ein Schreiben nicht möglich ist.

Ich suche also eine Möglichkeit, in regelmäßigen Intervallen schnell an die Inhalte des Logfiles zu kommen, ohne ihn von der Bearbeitung der Anwendung x auszuschließen, bzw. eine Möglichkeit, den Logfile in Echtzeit mitzulesen.

Wie kann ich das am günstigsten angehen?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#2

Re: Lesen aus Logfile, Programmabsturz

  Alt 5. Nov 2009, 15:08
Kannst du am Programm etwas ändern?

Wie öffnet das Programm die Datei? (welche Sharing-Rechte läßt es zu)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
peter001

Registriert seit: 2. Nov 2008
17 Beiträge
 
#3

Re: Lesen aus Logfile, Programmabsturz

  Alt 5. Nov 2009, 16:29
Hi

Da liegt das Problem. Auf Anwendung x habe ich weder zugriff noch weiß ich wie es sich die DateiHandels erstellt. Ob während dem Schreibzugriff die Datei gesperrt wird, etc. Ich kann also nur ausprobieren und auf Vermutung probieren.

Ich habe jetzt durch die Suche diverse Ansätze gefunden, aber bisher war noch nichts wirklich erfolgreich.
Ein Stream scheint da am erfolgversprechendsten zu sein, allerdings habe ich nicht genau verstanden, wie genau ich da mit einem Stream drauf zugrifen kann, wenn ich fest davon ausgehe, dass der Logfile durch Anwendung x gesperrt/gelockt ist.

Um das nochmal zu betonen: Mein Delphi Tool soll nur lesen, die Funktion ein zu großes log zu löschen damit es von der Anwendung automatisch neu angelegt wird ist optional, wenn das aber zu risikant ist, lasse ich das lieber raus.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#4

Re: Lesen aus Logfile, Programmabsturz

  Alt 5. Nov 2009, 17:19
Tja, wenn du hättest was am Programm ändern können, dann hättest du nicht erst naträglich auf die Daten zugreifen müssen.

Und wenn das programm so oft auf diese Datei zugreift und es auch noch so "scheiße" reagiert, wenn auf die Datei nicht zugreifbar ist, dann darf man halt nicht so oft drauf zugreifen und das Abstürzen so regelrecht provozieren.

Was du machen könntest die schreiboperationen hooken und dann die Daten direkt odrt abfangen/auslesen



Ansonsten würde ich erstmal versuchen diese Datei nur mit leserechten zu öffnen, offen lassen und dann schauen wie das Programm reagiert.

Wenn du glück hast, dann läßt das Programm beim Zugriff dieses zu und verreckt nicht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
533 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Lesen aus Logfile, Programmabsturz

  Alt 5. Nov 2009, 17:33
Oder nimm ein fertiges Tool.
Z.B. http://www.hootech.com/WinTail/
Sehr gut kostet 49$.
Oder irgendein Freeware Tail.
http://lmgtfy.com/?q=tail+windows
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz