Wie formatieren Sie den Stack-Trace von Exceptions in C #?

8

Wenn Exception angezeigt wird (oder allgemeiner - wenn es in String konvertiert wird), wird der Stack-Trace angezeigt. Ich möchte das Format der Dateipfade des Quellcodes ändern, die in einem solchen Trace angezeigt werden.

Insbesondere möchte ich nur Dateinamen (ohne vollständigen Pfad) lassen oder nur den Teil des Pfades anzeigen, der mit dem Basisverzeichnis des Projekts beginnt. Vollständige Pfade sind in der Regel nicht erforderlich und überfluten die gesamte Nachricht.

Wie kann ich das tun?

    
JohnM2 03.03.2010, 14:47
quelle

2 Antworten

23

Ich habe eine ähnliche Frage gestellt, obwohl sie nicht ganz die gleiche ist: Print stack trace Informationen in C # .

Was Sie tun können, ist dies:

%Vor%

Dies gibt Ihnen ein StackTrace -Objekt, das Ihnen alle Informationen liefert brauchen. In meinem Fall ging es darum, den lokalisierten Ausnahmetext zu vermeiden, aber ich könnte mir vorstellen, dass Sie den gleichen Ansatz für Ihre Bedürfnisse verwenden können.

Bearbeiten : Ich habe festgestellt, dass ich dem Antwort auf meine Frage zu einem" needFileInfo "-Parameter für den Konstruktor akzeptiert. Ich sehe diesen Konstruktor hier: StackTrace (Ausnahme e, bool fNeedFileInfo) kann ich nicht finden der aktuelle Code in Frage jetzt aber ich würde vermuten, dass Sie true zu diesem Argument übergeben müssen. Ich denke, Experimente sind der Schlüssel hier.

Mit anderen Worten, ich denke, der Code sollte dies sein:

%Vor%     
Lasse Vågsæther Karlsen 03.03.2010, 14:50
quelle
2

Überprüfen Sie die Klasse System.Diagnostics.StackFrame und den GetFileName Methode. Sie können eine Methode schreiben, die den Stack-Trace und die Namen der Quelldateien, die Sie in Ihrem Exception-Handler aufrufen können, erhält.

    
TLiebe 03.03.2010 14:56
quelle

Tags und Links