IMHO gibt es bei einem Logging-System wesentlich mehr zu beachten, als das Anlegen einer Datei:
Neben unterschiedlichen Ausgabeströmen (zB OBS, Remote) und -Strategien (zB Textfile nach >100k neu erzeugen) und der Möglichkeit, die "Geschwätzigkeit" zb mithilfe von Qualifizierung der Einträge (Debug, Info, Warnung, Error, Fatal,...) oder innerhalb von Hierarchien (App.Logic, App.DBMS, App.GUI.Input, ...) zu regulieren sowie das optionale Sammeln gewisser Rahmendaten (zB Zeit, Uptime, Process-/Thread-Id/-Name), sollte so ein System vollständig zur Lauftzeit konfigurierbar sein, um vor Ort intensivere Analysen durchführen zu können oder bei der Entwicklung detaillierte Informationen zu erhalten, ohne dass die Performance der Release-Infomation darunter leidet.
Die Kapselung der tatsächlichen Darstellung (
HTML, PlainText, ...) bzw des Renderings innerhalb des Loggins-Konzept, um zB ein Objekt direkt übergeben zu können anstatt einen
HTML-String aus den Eigenschaften zu basteln, runden die Lösung dann zusammen mit einfacher Erweiterbarkeit und diversen Filtermöglichkeiten ab...
Wem das ganze zu utopisch klingt, sollte einmal einen Blick auf
log4j werfen. Zwar ist das eine Lösung für Java, die Ideen lassen sich aber 1:1 in Delphi umsetzen. Eine
entsprechende Implementierung in Delphi ist bereits in der Meche und vor ein paar Jahren hat Keith Wood (einer der Beteiligten dieses Projekts) in der CodeCentral ebenfalls eine Implementierung vorgestellt:
codecentral log4d.