Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Name einer Procedure / Funktion zur Laufzeit? (https://www.delphipraxis.net/57958-name-einer-procedure-funktion-zur-laufzeit.html)

moelski 29. Nov 2005 11:53


Name einer Procedure / Funktion zur Laufzeit?
 
Moin !

Wir würden gerne in unserer Anwendung zum Loggen die Procedure und Funktionsaufrufe protokollieren. Wir könnten so den "Weg der Daten" besser nachvollziehen.

Also BsP:
Angenommen wir haben eine procedure xy
Delphi-Quellcode:
procedure xy();
begin
 ....
 Logging(procedure Name);
 ....
end;
Jetzt würde ich halt gerne der Procedure "Logging" den den Namen XY übergeben. Auf diese Weise könnten wir halt nachvollziehen, wie unsere Daten von den verschiedenen Proceduren die wir so haben, nacheinander bearbeitet werden.

Das ganze soll aber zur Laufzeit funktionieren, um auch beim User Loggen lassen zu können. Wir verwenden schon die Debug Extentions von jcl. Hier wird ja sogar (im Fehlerfall) die Linie im Quellcode ausgegeben, die den Fehler produziert hat. Kann ich das auch dafür "missbrauchen", um halt den Procedure- / Funktionsnamen rauszufinden? Hat da jemand evtl. einen Codeschnipsel für mich?

Tyrael Y. 29. Nov 2005 12:05

Re: Name einer Procedure / Funktion zur Laufzeit?
 
Moin,

so wie du es vorhast ist es doch schon genau richtig.
In jeder Prozedur/Funktion setzt du deine Logging-Methode ein und übergibst selbst als String
den Funktions/Prozedurnamen.
Bis vor einiger Zeit bin ich genauso vorgegangen, habe mich aber dann entschieden eine
professionelle Komponente dafür zu nutzen, die viel mehr loggen kann.

Ich benutze im Moment SmartInspect und bin auch sehr zufrieden damit.
Eine Alternative wäre CodeSite.


Gruß
Tyrael

moelski 29. Nov 2005 12:31

Re: Name einer Procedure / Funktion zur Laufzeit?
 
Moin !

Zitat:

SmartInspect / CodeSite.
Danke für die Hinweise. Ist aber bei uns wohl etwas Oversized.

Und wie kriege ich es nun mit "normalen" Mitteln hin das der Procedure Name ermittelt wird?
Ich möchte nicht bei jedem Logging Befehlt den Procedure namen manuell als String übergeben ....

Tyrael Y. 29. Nov 2005 12:37

Re: Name einer Procedure / Funktion zur Laufzeit?
 
Schlagwort dafür wäre RTTP, aber da kenn ich mich selbst nicht so aus...


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