Ich bin dies auch am evaluieren. Bevor ich da tiefer gehe: Ist für den FileAppender eine automatisch Rotation mit MaxFileSize eingebaut?
Wenn du am Logging interessiert bist, ist mORMot einen Blick wert. Die
Hilfe vermittelt einen ersten Überblick. Ein Beispiel für die Anwendung:
Delphi-Quellcode:
program TestLogging;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
System.Classes,
mormot.core.base,
mormot.core.rtti,
mormot.core.log,
mormot.core.zip;
procedure Test1;
var
log: ISynLog;
begin
log := TSynLog.Enter;
log.Log(sllInfo, '
Test1 arbeitet');
end;
procedure Test2;
var
list: TStringList;
begin
list := TStringList.Create;
try
TSynLog.Add.Log(sllInfo, '
Test2 arbeitet', list);
list[0];
finally
list.Free;
end;
end;
begin
var logFamily: TSynLogFamily := TSynLog.Family;
logFamily.Level := LOG_VERBOSE;
logFamily.AutoFlushTimeOut := 2;
logFamily.HighResolutionTimestamp := False;
logFamily.PerThreadLog := ptNoThreadProcess;
logFamily.ExceptionIgnore.Add(EConvertError);
logFamily.OnArchive := EventArchiveZip;
logFamily.ArchiveAfterDays := 1;
try
Test1;
Test2;
except
on E:
Exception do
Writeln(E.ClassName, '
: ', E.
Message);
end;
end.
Ein kleiner Auszug aus der Logdatei:
Code:
20230213 20391650 + TestLogging Test1 (19)
20230213 20391651 info Test1 arbeitet
20230213 20391651 - 00.000.042
20230213 20391651 info System.Classes.TStringList(032688f0) Test2 arbeitet
20230213 20391651 EXC EStringListError {Message:"Listenindex außerhalb des gültigen Bereichs (0)"} [Main] at 16a833 System.Classes.pas TStringList.Get (7644)
Die Funktion TSynLog.Enter protokolliert
Unit-, Klassen- und Funktionsname mit Quelltext-Zeilennummer. Beim Verlassen der Funktion wird die Ausführungszeit ermittelt. Im Beispiel sind es 42us. Mit dem Aufruf Log kann ein Eintrag hinzugefügt werden. Bei Angabe einer Instanz wird der
Unit- und Klassenname mit dem Instanz Pointer aufgeführt. Es stehen 32 vordefinierte Events zur Verfügung. Bei einer
Exception wird die Fehlermeldung und der Aufrufpfad, mit allen
Unit-, Klassen- und Funktionsname inklusive Zeilennummern aufgelistet. Ein Beispiel aus der Praxis findest du im Quelltext dieses
DP Artikels.
Bis bald...
Thomas