AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Spring4D Logging

Ein Thema von wasbo · begonnen am 25. Jan 2022 · letzter Beitrag vom 16. Feb 2023
 
mytbo

Registriert seit: 8. Jan 2007
479 Beiträge
 
#5

AW: Spring4D Logging

  Alt 13. Feb 2023, 21:31
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

Geändert von mytbo (13. Feb 2023 um 21:34 Uhr)
  Mit Zitat antworten Zitat
 

 

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 22:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz