Thema: Delphi Log-Datei realisieren

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: Log-Datei realisieren

  Alt 10. Nov 2007, 02:47
das mit fmShareExclusive wurde ja schon angesprochen,
aber gern nochmals - dieses sorgt dafür daß NUR Einer zur selben Zeit die Datei öffnen kann und nicht Mehrere.


ups, ja stimmt ... ohne TimeOut wird die Schleife ja nicht verlassen, bevor die Datei nicht geöffnet wurde, also kein Problem,
aber mit TimeOut sollte man die mögliche Exception bei CloseFile natürlich auch abfangen,
also {$I-} CloseFile(F); {$I+}.

Und was das Arbeiten mit Exceptionen angeht, klar ist es möglich, aber hier gab's schonmal ein Streitgespräch darüber, ob man überhaupt absichtlich Exceptionen auslösen soll, um den Programmablauf zu steuern und da meinten die Meisten berechtigt nein.



Zitat von peschai:
Wer also das Hauptlog exclusiv öffnen kann, muss zuerst die anderen templogs auslesen und reinschreiben, dann diese templogs löschen und dann erst seine eigenen Sachen eintragen ...

was meint ihr ?
ja und dann muß man wieder die TempLogs gegen gleichzeitigen Zugriff absichern,
denn wenn ein anderer Prozess grad noch in ein TempLog reinschreibt, dann gibt es bestimmt Probleme wenn plötzlich gleichzeitig jemand anderes versucht diesen auszulesen (um ihn in den HauptLog einzutragen).

im Prinzip eine nette Lösung, aber da es sich hier nur um kurzzeitige Sperrungen des HauptLogs handelt (eie Zeile einzufügen dauert ja nicht lange), wäre der Aufwand wohl eher zu groß.
Sowas würde sich mehr für Dinge lohnen wo die Sperrung viel zu lange zum Warten dauert.

Alternativ könnte man auch im Programm sowas wie eine Warteliste anlegen, wo man die Logeinträge einfügt und welche dann bei nächster Gelegenheit in die Logdatei eingetragen werden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat