Laden...

TraceSource schreibt Logdatei nicht

Erstellt von IchRoque81 vor 10 Jahren Letzter Beitrag vor 10 Jahren 1.557 Views
IchRoque81 Themenstarter:in
36 Beiträge seit 2008
vor 10 Jahren
TraceSource schreibt Logdatei nicht

Hallo zusammen.

Ich versuche vergeblich mich mit der Klasse TraceSource anzufreunden, jedoch will mir das nicht gelingen. Auch die gute alte Google-Recherche hat leider keinen Erfolg gebracht.

Mein Problem liegt darin, dass die Log-Datei am Ende nicht geschrieben wird. Hier mein Dummy-Code dafür:


            var errorTrace = new TraceSource("MyErroLog");
            try
            {
                try
                {
                    throw new ArgumentException("Inner exception");
                }
                catch (Exception ex)
                {
                    throw new InvalidOperationException("Real exception", ex);
                }
            }
            catch (Exception ex)
            {
                errorTrace.TraceEvent(TraceEventType.Information, 0, "--------------------------------------------------");
                errorTrace.TraceData(TraceEventType.Critical, 1, ex);
            }
            finally
            {
                errorTrace.Close();
            }


Was fehlt noch oder woran liegt es, dass die Logdatei nicht geschrieben wird? Sollte doch direkt neben der *.exe liegen...

~ rock on ~

16.807 Beiträge seit 2008
vor 10 Jahren

Hast die Doku und dessen Beispiel nich zu Herzen genommen?
Du hast kein Flush.

6.911 Beiträge seit 2009
vor 10 Jahren

Hallo IchRoque81,

alternativ zur Flush-Methode der TraceSource kann auch System.Diagnostics.Trace.AutoFlush auf true gesetzt werden. Dies ist v.a. bei Diensten oft ganz nützlich.

Ich versuche vergeblich mich mit der Klasse TraceSource anzufreunden

Dazu kann ich dir A Tracing Primer - Part I ff. empfehlen.

Zu deinem try-Konstrukt: ich hoffe dass du das nur zu Test-/Lern-Zwecken und nicht im Produktiv-Code verwendest. Dort bringt ein derart verschachteltest try-catch nichts und ein einfaches try-catch reicht völlig aus.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

IchRoque81 Themenstarter:in
36 Beiträge seit 2008
vor 10 Jahren

Hi

@Abt.: Danke für den Hinweis. Aber leider bleibt das Ergebnis das Gleiche wenn ich im finally noch ein errorTrace.Flush() vor errorTrace.Close() einfüge.

@gfoidl: Danke für den Link. Ich werde mir den Artikel gleich einmal ansehen. "#define TRACE" hatte ich auch vergessen X(
Mein Try-Catch-Kontrukt im äußeren Try ist lediglich für Lernzwecke 😁

Die Datei soll aber schon neben den Anwendung erstellt werden? Nicht das ich an der falschen Stelle suche...

~ rock on ~

IchRoque81 Themenstarter:in
36 Beiträge seit 2008
vor 10 Jahren

Hi.

Manchmal sieht man den Wald vor lauter Bäumen nicht. Meine Config-Datei wurde nicht mit in den Output kopiert und somit hatte ich auch keinen Trace 🙁

Danke noch einmal für die hilfreichen Tipps!

Gruß,
IchRoque81

~ rock on ~