Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Trace/Logger Klasse (https://www.delphipraxis.net/172557-trace-logger-klasse.html)

Jazzman_Marburg 10. Jan 2013 19:09

Trace/Logger Klasse
 
Hallo Gemeinde.
Ich würde gern ein Tracing in meinem Programm haben: D.h. wenn der User das Traceing einschaltet, wird in einem neuen Fenster (oder File) das angezeigt was die einzelnen Proceduren so zu berichten haben -- im einfachstem Fall die Ausführungszeit, oder eben wichtige Variablenwerte.
Mir schwebt da so was wie ein Trace-Klasse vor. Diese würde dann, die Trace-Strings sammeln und sie dann wegschreiben. Und in den Proceduren stünde dann so was wie:

Delphi-Quellcode:
if tracing then
  Trace.Add ('Hans=' + inttostr (Alter));
Ist wahrscheinlich einfacher zu realisieren, als ich es beschreiben kann -- aber ich wüßte jetzt nicht, wie man so eine Trace Klasse schreiben würde. (Tatsächlich fällt mir gerade ein, dass man so was ja für viele andere Projekte auch prima gebrauchen könnte).

Jemand eine Idee -- oder einen Link zu so einer Klasse?

Lieben Dank & Gruß
Jazzman

Furtbichler 10. Jan 2013 20:01

AW: Trace/Logger Klasse
 
http://log4delphi.sourceforge.net/

Jazzman_Marburg 10. Jan 2013 20:09

AW: Trace/Logger Klasse
 
Vielen Dank!

Funktional schon das, was ich suchte -- aber doch ein wenig zu groß, das Ganze.
Ich bin eher nach etwas schlichterem auf der Suche ... ein Template für eine eigene Klasse wäre mir da lieber.

Nichtsdestotrotz, vielen Dank!

Gruß
Jazzman

Steku 10. Jan 2013 20:15

AW: Trace/Logger Klasse
 
Oder vielleicht so etwas:

http://wiki.delphi-jedi.org/wiki/JVCL_Help:TJvLogFile

Gruß
Steku

Jazzman_Marburg 10. Jan 2013 20:36

AW: Trace/Logger Klasse
 
Zitat:

Zitat von Steku (Beitrag 1198540)
Oder vielleicht so etwas:

http://wiki.delphi-jedi.org/wiki/JVCL_Help:TJvLogFile

Gruß
Steku

:roll: Hmmm, ich werde mal reinschauen, ob ich Dinge übernehmen kann (ist ja auch ziemlich mächtig...).

Danke
Jazzman

taveuni 11. Jan 2013 08:06

AW: Trace/Logger Klasse
 
THotlog.
Ist zwar schon uralt aber leicht modifiziert nutzen wir das für Delphi immer noch.

Klaus01 11. Jan 2013 08:45

AW: Trace/Logger Klasse
 
.. naja, etwas OT


Delphi-Quellcode:
if tracing then
  Trace.Add ('Hans=' + inttostr (Alter));
ich würde die Abfrage/Entscheidung ob tracing eingeschaltet ist in der Traceklasse durchführen lassen.

Weiter würde ich noch einen DebugLevel einführen.
Über den DebugLevel lässt sich dann die Detailtiefe beeinflussen.

Grüße
Klaus

Jazzman_Marburg 11. Jan 2013 08:56

AW: Trace/Logger Klasse
 
Vielen Dank Leute! :-D

Eure Beiträge helfen mir ganz prima!


Gruß, Jazzman

sahimba 11. Jan 2013 09:57

AW: Trace/Logger Klasse
 
Hallo,

ich habe das mal was gebaut, was ich Dir zukommen lassen könnte.
Es gibt dort eine Loggingklasse und Logziele. Letztere können ein Textfile, die Konsole oder ein schlichtes OutputDebugString sein. Der Detailgrad (Debug, Info etc.pp) ist konfigurierbar und das Ganze läuft asynchron. Die zu loggende Info wird zunächst in eine Queue gepackt welche von einem Thread verarbeitet und dann an die einzelnen Logziele geschickt wird; so blockiert die Anwendung möglichst nicht.
Das Ganze ist recht schlank, wurde aber von mir noch nicht ausgiebig getestet.
Bei Interesse, kurze Meldung, dann suche ich das raus und zippe es heut abend zusammen.

Grüße
Stefan

Jazzman_Marburg 11. Jan 2013 14:14

AW: Trace/Logger Klasse
 
Zitat:

Zitat von sahimba (Beitrag 1198598)
Bei Interesse, kurze Meldung, dann suche ich das raus und zippe es heut abend zusammen.

Hallo Stefan,
das ist sehr nett -- ich melde mich gern bei Dir, falls ich mit meinem (inzwischen) eigenen Ansatz nicht weiterkomme (möchte nicht zu früh aufgeben).

btw
Weiss zufällig jemand, was es mit System.Diagnostics.TStopwatch auf sich hat?
Ist das etwas, was ich mit Delphi XE nutzen kann -- oder ist das nur für .NET-Kram? Ich werde aus der Doku von Emba irgendwie nicht schlau, was das nun ist und ob ich es verwenden kann? Das sieht doch aus wie die hier im Forum vor Jahren vorgestellte TStopUhr -- oder stehe ich gerade auf'm Schlauch? :stupid:

Vielen Dank & Gruß
Jazzman


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:09 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