Laden...

Logging für Methodenaufrufe (per AOP? Oder per Profiler?)

Erstellt von itstata vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.456 Views
I
itstata Themenstarter:in
302 Beiträge seit 2008
vor 13 Jahren
Logging für Methodenaufrufe (per AOP? Oder per Profiler?)

Hallo,

ich habe das konrete Problem, dass ich den Auruf von Webservice-Methoden protokollieren muss. Dazu zählen z.B. die Anzahl der Aufrufe, Ausführungszeit etc..

Eigentlich ist dies ja ein Musterbeispiel für AOP, jedoch habe ich noch kein kostenloses vertrauenswürdiges Framework gefunden. Vielleicht hat jemand dazu noch einen Tipp.

Kann das .Net-Framework hier duch andere Funktionen Hilfe leisten? Momentan nutze ich eine eigene Klasse die ich am Start bzw. Ende der Methode aufrufe. Die Anzahl der zu protokollierenden Methoden steigt jetzt jedoch stark.

Besten Gruß

6.862 Beiträge seit 2003
vor 13 Jahren

Hallo,

was meinst du mit vertrauenswürdigem Framework? Ist das Protokollieren eine regelmäßige Sache oder eher was einmaliges? Bei regelmäßig bist du mit AOP schon richtig, da gäbs z.B. PostSharp was wohl recht beliebt ist. Bei eher einmaliger Sache ist das aber Aufgabe eines Profilers.

Baka wa shinanakya naoranai.

Mein XING Profil.

1.552 Beiträge seit 2010
vor 13 Jahren

Hallo itstata,
Mit log4net kann man das sicher irgendwie erreichen, hab es aber nie probiert, denn in Sachen Methodenaufrufe verwende ich den DotTrace Profiler.

Gruß
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

1.820 Beiträge seit 2005
vor 13 Jahren

Hallo!

Ich vermute mal, es wird eher eine Lösung gesucht, um die Statistiken zur Laufzeit zu erstellen, da ist dann Logging eher suboptimal.

Evtl. könnte man LightCore verwenden, um einen Statistik-Service zur Verfügung zu stellen, welcher jeweils beim Start und Ende einer Methode eine Funktion des Service aufruft. Den Aufrufer kann man entweder per Reflection (Performance-lastig) oder als Parameter feststellen.

Nobody is perfect. I'm sad, i'm not nobody 🙁

I
itstata Themenstarter:in
302 Beiträge seit 2008
vor 13 Jahren

ja, genau - es soll eine Statistik dabei heraus kommen. Wir sprechen einen dritten Service an der nicht gerade performant ist. Dadurch müssen wir gucken, wo wir selbst optimieren müssen.

Ist PostSharp nicht kostenpflichtig?

@talla
mit nicht vertrauenswürdig meine ich, dass es ein verbreitetes und bis heute weitergepflegtes Framework sein sollte.

6.862 Beiträge seit 2003
vor 13 Jahren

Jein, es gibt verschiedene Lizenztypen, auch kostenlose Lizenzen unter bestimmten Umständen.

Du schreibst optimieren - also doch eher Entwicklungstätigkeit und nicht laufender Betrieb oder? Dann ist ein Profiler viel besser geeignet.

Baka wa shinanakya naoranai.

Mein XING Profil.

I
itstata Themenstarter:in
302 Beiträge seit 2008
vor 13 Jahren

Jein, unser Kunde benötigt auch zur Laufzeit diese Protokollierungsdaten. Trotzdem ist ein Profiler wohl trotzdem sinnvoll.

Auf jeden Fall schade, falls es keine wirkliche Alternative für PostSharp gibt.

3.430 Beiträge seit 2007
vor 13 Jahren

Hallo,

ich habe mal den Equatec Profiler ausprobiert und dabei kann man beim Client auch mitprotokollieren was der macht (welche Methoden aufgerufen werden, wie lange es dauert) usw. Aber den vollen Funktionsumfang gibt es wahrscheinlich aus Performancegründen nicht.

Ich weiß jetzt nicht sicher ob es was für dich ist, aber es ist auf jedem Fall einen Blick wert: EQUATEC Profiler

Das ist zwar nicht gratis, aber wenn man berechnet was man sich an Zeit und Nerven sparen kann wenn man einen Fehler sucht, dann ist das schon gerechtfertigt.

Gruss
Michael

1.552 Beiträge seit 2010
vor 13 Jahren

Das ist zwar nicht gratis

Es gibt ihn auch gratis, jedoch kann man dann "nur" 10 dll pro Profilvorgang profilen.
Pricing Equatec
Die Zahl verdeutlicht die Anzahl an dll die man pro Profilvorgang gleichzeitig überwachen kann. Ich habe diesen vor ca einem Jahr auf Empfehlung von michlG ausprobiert, war nicht schlecht, aber ich bin von dem von Jetbrains mehr zufrieden.

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp