Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Unit] Errorlog (https://www.delphipraxis.net/115347-%5Bunit%5D-errorlog.html)

Fussball-Robby 10. Jun 2008 20:46


[Unit] Errorlog
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mit der Unit ErrorLog ist es ganz einfach möglich, einen Errorlog für ein eigenes Programm zu erstellen, indem alle Fehler, die in der Anwendung auftreten, geloggt werden. Man muss die Unit unter uses eintragen und sich ganze 3 Befehle merken:
Delphi-Quellcode:
ErrorLog.Start(FileName);
Wie der Name schon sagt dient dieser Befehl zum starten des Protokollierens. Es wird eine Datei namens FileName angelegt, in der der Log gespeichert wird. Existiert die Datei bereits, wird die Liste zuvor noch geladen. Tritt kein Fehler auf, wird die Datei nicht erstellt.
Befehl No. 2 (ihr habt es euch bestimmt schon gedacht :wink: ):
Delphi-Quellcode:
ErrorLog.Stop;
Stoppt die Auflistung der Fehler bis wieder Start aufgerufen wird. Wird Start mit einem leeren String als Parameter aufgerufen, wird der FileName nicht erneuert, was nützlich zur Wiederaufnahme des Protokolls ist.
3. Befehl:
Delphi-Quellcode:
ErrorLog.Write(Flag, Msg);
Mit diesem Befehl ist es nun möglich, eigene Nachrichten zu loggen. Unter Flag trägt man quasi die Überschrift der Nachricht ein (z.B. "Info" oder "Warnung"). Msg ist dann die Nachricht, die geloggt wird.


Anwendung:
Delphi-Quellcode:
ErrorLog.Write('Info', 'Objekt XYZ wurde erstellt');
ergibt zum Beispiel:
Code:
[24.10.2008 / 17:01:42] [Info] Objekt XYZ wurde erstellt
Zusätzlich zu jeder Nachricht (eigene und automatisch geloggte) wird also das aktuelle Datum sowie die Uhrzeit gespeichert.

Vielleicht kann ja jemand die Unit gebrauchen.

Mfg

Larsi 10. Jun 2008 20:58

Re: [Unit] Errorlog
 
Hi,
klingt ganz gut. Was loggt die Lob Unit denn Alles?

Larsi 10. Jun 2008 20:59

Re: [Unit] Errorlog
 
Hat sich erledigt, habs verstanden :-D

Apollonius 10. Jun 2008 21:02

Re: [Unit] Errorlog
 
Hallo Robert,
ich finde es etwas unpassend, dass du bei jeder Exception die gesamte Datei neu schreibst. Mit den alten Pascal-Routinen geht das viel besser: Einfach mit Writeln anfügen und dann Flush aufrufen.

Eine interessante Ergänzung wäre es, wenn du noch die Möglichkeit bötest, über einen Hook auf HandleOnException und HandleAnyException alle Exceptions zu loggen, also auch die, die bereits durch einen inneren Try-Except-Block abgefangen werden.
Außerdem solltest du auch eine Methode veröffentlicht, die es dem Entwickler ermöglicht, eigene Nachrichten zu loggen.

Fussball-Robby 10. Jun 2008 21:14

Re: [Unit] Errorlog
 
Zitat:

Zitat von Apollonius
ich finde es etwas unpassend, dass du bei jeder Exception die gesamte Datei neu schreibst. Mit den alten Pascal-Routinen geht das viel besser: Einfach mit Writeln anfügen und dann Flush aufrufen.

Werde ich nachher noch machen.
Zitat:

Zitat von Apollonius
Eine interessante Ergänzung wäre es, wenn du noch die Möglichkeit bötest, über einen Hook auf HandleOnException und HandleAnyException alle Exceptions zu loggen, also auch die, die bereits durch einen inneren Try-Except-Block abgefangen werden.

Werde ich mir mal anschauen und, wenn ich mal die Zeit dazu habe, einbauen.
Zitat:

Zitat von Apollonius
Außerdem solltest du auch eine Methode veröffentlicht, die es dem Entwickler ermöglicht, eigene Nachrichten zu loggen.

Was für Nachrichten meinst du damit jetzt?

Auf jeden Fall schonmal Danke für die Anregungen

Apollonius 10. Jun 2008 21:17

Re: [Unit] Errorlog
 
Beliebige Nachrichten. Auch Erfolgsmeldungen kann man loggen. Falls der Entwickler dein Log erweitern will, sollte er dies tun dürfen.

ste_ett 10. Jun 2008 21:49

Re: [Unit] Errorlog
 
Zitat:

Zitat von Apollonius
Beliebige Nachrichten. Auch Erfolgsmeldungen kann man loggen. Falls der Entwickler dein Log erweitern will, sollte er dies tun dürfen.

Exakt. :)

(Optionale) Flags für Info, Error und Debug.

Diamondback2007 17. Jun 2008 09:38

Re: [Unit] Errorlog
 
Ja, vor allem ein Flag für Debug wäre super praktisch. :)

Fussball-Robby 24. Okt 2008 17:30

Re: [Unit] Errorlog
 
Nachdem dieser Thread völlig in Vergessenheit geraten ist, habe ich ihn eben wieder entdeckt und dachte mir, ich könnte doch mal die Verbesserungsvorschläge umsetzen, es gibt also eine neue Version der Unit UErrorLog :wink:


Zitat:

Zitat von Apollonius
ich finde es etwas unpassend, dass du bei jeder Exception die gesamte Datei neu schreibst. Mit den alten Pascal-Routinen geht das viel besser: Einfach mit Writeln anfügen und dann Flush aufrufen.

Die einzelnen Nachrichten werden nun nur noch angehängt, es wird nicht mehr die ganze Datei geladen. Vor allem bei langen Logs hätte dies schon zu Problemen geführt..
Zitat:

Zitat von Apollonius
Außerdem solltest du auch eine Methode veröffentlicht, die es dem Entwickler ermöglicht, eigene Nachrichten zu loggen.

Ist jetzt mit dem Befehl ErrorLog.Write() möglich, eine Erklärung dazu ist im 1. Post.

Auch die neue Version ist im 1. Post, ich hoffe wiederum, dass sie vielleicht irgendjemand mal gebrauchen kann. Auch Kritik/Verbesserungsvorschläge (evtl. auch Lob? :cyclops: ) sind natürlich immer gerne gesehen :zwinker:

Jonelmeier 30. Okt 2008 10:28

Re: [Unit] Errorlog
 
Also ich muss sagen, deine Unit ist echt super. Werde sie direkt in meinem Programm verwenden (wird bald hier in der DP Vorgestellt)...
Super Arbeit! :thumb:

Gruß aus Hamburg!


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:20 Uhr.
Seite 1 von 2  1 2   

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf