Ich verwende log4net
und es schreibt gelegentlich eine Ausnahme in die Protokolldatei. Jetzt möchte ich jede Protokollzeile einzufügen, die mehr als 1 Zeile sein kann (zum Beispiel Ausnahmen einschließlich Stacktrace) lang, soProtokolldatei nach Protokollzeile analysieren
foreach(var line in File.ReadAllLines(...)){}
würden Ausnahmen brechen. Hier ist eine Beispiel-Protokolldatei:
2017-02-22 14:37:17,212 [Foo.Bar] INFO - This is something nice to log
System.InvalidCastException: Specified cast is not valid.
at System.Data.DataRowExtensions.UnboxT`1.ValueField(Object value)
at System.Data.DataRowExtensions.Field[T](DataRow row, String columnName)
at Foo.Bar.<>c__DisplayClass282_0.<FooBar>b__0(DataRow row) in somefile.cs:line 2657
at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
at Foo.Bar.<FooBar>d__282.MoveNext() in somefile.cs:line 2657
ich die erste Zeile will in einem String analysiert wird, sowie der gesamte verbleibende Rest (in diesem Beispiel der Ausnahme im Allgemeinen).
Haben Sie gute Ideen, um loszulegen?
ich hier beginnen würde: [fragen] –
@ rory.ap Dank, ich bin ziemlich gut. Ich hatte einfach keinen Sinn damit anzufangen. Vielen Dank für die Abstimmung ohne Angabe von Gründen. Vielleicht sollten Sie sich die Anleitung ansehen, wie Sie (in Ihrem Buch) "dumme Fragen" richtig überprüfen können. Warum ist stackoverflow so unfreundlich? –
Ich habe abgelehnt, weil Sie sich nicht die Mühe gemacht haben, [help] und [ask] zu lesen, bevor Sie Ihre Frage posten. Ihre Frage ist zu weit gefasst und zeigt keine Forschungsanstrengungen. Es ist nicht so, dass SO unfreundlich ist; Es ist vielmehr so, dass die Leute die gleichen Arten von Fragen satt haben, die immer wieder gestellt werden, ohne dass die Person die Regeln versteht. –