AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Unit] Errorlog

[Unit] Errorlog

Ein Thema von Fussball-Robby · begonnen am 10. Jun 2008 · letzter Beitrag vom 30. Jan 2009
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von Fussball-Robby
Fussball-Robby
Registriert seit: 22. Okt 2007
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: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 ):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: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:
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
Angehängte Dateien
Dateityp: pas uerrorlog_149.pas (3,2 KB, 127x aufgerufen)
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
 
HeinzJ

 
Delphi 2007 Architect
 
#11
  Alt 30. Okt 2008, 09:44
Ich habe mit Log4D gute erfahrungen gemacht. Ist dem Log4J hervorgegangen. Hackelig waren u.a. nur die Anpassungen der INDY Geschichten.

Anstatt auftretende Fehler und Infomeldungen auf die Standardausgabe auszugeben, wird die Nachricht über sogenannte Logger in das Loggingsystem geleitet und gleichzeitig eine Einteilung der Wichtigkeit vorgenommen. Der Programmierer muss sich beim Erstellen des Programms nur um die Wichtigkeit der Meldungen Gedanken machen. Die Filterung und Art der Ausgabe kann zur Laufzeit konfiguriert werden.
  Mit Zitat antworten Zitat
Relicted

 
Delphi 10.4 Sydney
 
#12
  Alt 30. Okt 2008, 10:17
Ich war mal so dreist und habe deine Unit etwas angepasst. Kannst es ja falls du magst übernehmen.
Die wichtigste "Neuerung" ist das implementieren des "Singleton Designpatterns".
Ich persönlich mag globale Variablen nicht - daher habe ich mal diesen "Umweg" implementiert.

Gruß
Reli
Angehängte Dateien
Dateityp: pas uerrorlog_227.pas (5,8 KB, 49x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

 
Delphi 11 Alexandria
 
#13
  Alt 30. Okt 2008, 10:20
So als kleine Anregung: HotLog
Ronny
  Mit Zitat antworten Zitat
SimStar001
 
#14
  Alt 4. Dez 2008, 01:32
Hallo, ich wollte deine ErrorLog Unit verwende, nur leider kommt immer wenn ich auf ErrorLog.Start gehe eine AcessViolation in meiner Anwendung!? wieso das!? was könnte ich da flasch machen?
Marco Tröger
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

 
Delphi 7 Enterprise
 
#15
  Alt 4. Dez 2008, 11:17
Zitat von SimStar001:
Hallo, ich wollte deine ErrorLog Unit verwende, nur leider kommt immer wenn ich auf ErrorLog.Start gehe eine AcessViolation in meiner Anwendung!? wieso das!? was könnte ich da flasch machen?
Eigentlich kann da garnichts schief gehen. Es sei denn, ErrorLog wurde nicht erzeugt. Das passiert aber eigentlich automatisch in der Unit selbst unter initialization. Kannst ja mal nachschauen, ob das in der Unit ganz am Ende richtig drinsteht:
Delphi-Quellcode:
initialization
  ErrorLog := TErrorLog.Create;

finalization
  if ErrorLog <> nil then
    ErrorLog.Free;

end.
Ansonsten weiß ich nicht, wo eine AV auftreten könnte. Kommt die denn nicht wenn du ErrorLog.Start auskommentierst?

Edit: Evtl. könntest du ja auch mal auf ErrorLog.Start einen Breakpoint setzen (mit F5) und dann mit F7 debuggen, sind ja nur 2 oder 3 Zeilen Code.
Robert L.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG
 
#16
  Alt 4. Dez 2008, 16:36
Zitat von Fussball-Robby:
Delphi-Quellcode:
initialization
  ErrorLog := TErrorLog.Create;

finalization
  //if ErrorLog <> nil then //<= diese Zeile wird AFAIK nicht gebraucht,
  ErrorLog.Free; // da in free auf nil geprüft wird

end.
Ist zwar kein Fehler, überprüft ErrorLog aber zweimal.


MfG,
Bug
  Mit Zitat antworten Zitat
Ruio

 
Delphi 2005 Personal
 
#17
  Alt 30. Jan 2009, 16:53
Erstmal ist die Unit super.

Nur ich bekomme einen E/A-Fehler 32, wenn mehrere Anwendungen (andere und die selbe) auf den Log zugreifen.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:41 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