Veröffentlicht 6. November 200816 j Kennt jemand eine Möglichkeit für eine .Net Anwendung automatisch ein Tracelog zu generieren? Also ohne das man selber in jede Funktion ausgaben ein bauen muss wie zum Beispiel mit System.Diagnostics. Bei einer Cobol Runtime gab es zum Beispiel die Möglichkeit dazu einen bestimmten Parameter samt Pfad mit zu übergeben und dann wurde dort automatisch ein Log generiert welche Funktionen wann aufgerufen wurden usw.
6. November 200816 j Meiner Meinung nach geht das nicht, ohne dass du selbst die Ausgaben einbaust. ...falls doch, so faend ich das recht praktisch und wuerds gern auch wissen wollen Goos
7. November 200816 j Schau dir mal die Enterprise Library von der ms patterns & practices seite an. Ich glaube da gab es was zum tracelog, bin mir aber nicht mehr ganz so sicher Bearbeitet 7. November 200816 j von Franzose
7. November 200816 j Es gibt verschiedene Ansätze dafür. Du kannst einen Profiler nutzen um so etwas generieren zu lassen, das hat aber massive Performance Auswirkungen. Mit aspektorientierter Programmierung kannst du dir allerdings auch ein automatisches Logging generieren lassen, ich habe mal einen Artikel darüber geschrieben ( Aspektorientierte Programmierung für das Logging nutzen | dotnetpro | Das Profi-Magazin fr Entwickler ), um den zu lesen musst du ein dotnetpro Abo haben (gibt auch kostenlose Probeabos ) dann kannst du den Downloaden oder die jeweilige Ausgabe irgendwo am Kiosk kaufen, es gibt auch Jahres-CDs mit allen Artikeln. Im Prinzip funktioniert mein Ansatz so das du ein Objekt durch eine bestimmte Factory erzeugen lässt ( myObject a = LoggingFactory.Create ( myObject ); ) und danach automatisch jeder Methodenaufruf geloggt wird, inkl. Parametern , Exceptions und Rückgabewerten. Basieren tut das Logging auf log4net und das generelle Prinzip auf dem AOP Framework spring.net Für weitere Details kannst du mir auch eine PM senden.
7. November 200816 j Autor Danke ich werd mal schauen ob wir die hier rumfliegen haben, obwohl das ja auch Änderungen am Quellcode benötigt. Aber vielleicht ist ja trotzdem was dabei...
7. November 200816 j Im Prinzip brauchst du nur nach jedem new Statement im Source suchen und da die Factory einsetzen. Wenn du den Code nicht ändern willst könntest du mit einem Tool (dessen Namen mir gerade entfallen ist) den IL Code nach einem Build automatisch patchen lassen. Dadurch wird natürlich das Debuggen schwieriger so das ich meine Variante schon als die beste machbare sehe.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.