2017-06-29 1 views
0

Standardmäßig werden nur 5 erste Frames des aufrufenden Stacks von log4net protokolliert, wenn die Methode Ilog Error (string message, Exception ex) verwendet wird.Gibt es eine Möglichkeit, die Standardprotokolltiefe zu ändern, die von log4net (ILog.Error) protokolliert wird?

Gibt es eine Möglichkeit, es zu ändern (erweitern)?

PS. Dies ist kein Duplikat von "Unterstützt log4net die Aufrufliste in einer Protokollnachricht". Es geht nicht darum, Call Stack in jeder protokollierten Nachricht zu unterstützen, sondern es bezieht sich auf die Menge der protokollierten Stack-Trace-Frames beim Aufrufen von Error (string message, Exception ex) Methode.

+0

https://StackOverflow.com/Questions/1906227/does-log4net-support-including-the-call- stack-in-a-log-message – Derek

+0

Mögliches Duplikat von [Unterstützt die log4net-Unterstützung einschließlich der Aufrufliste in einer Protokollnachricht] (https://stackoverflow.com/questions/1906227/does-log4net-support- included-the-call -stack-in-a-log-Nachricht) –

+0

Nein, das ist nicht verwandt. Ich habe ausdrücklich erklärt, dass es darum geht, die Standardtiefe der Stack-Trace zu ändern, die protokolliert wird, wenn ** die Methode Error (String-Nachricht, Exception ex) aufgerufen wird **. Standardmäßig scheint es 5 zu sein. Ich brauche log4net, um im Falle der Aufzeichnung einer Ausnahme mehr Stack-Trace einzubeziehen. –

Antwort

0

Sie haben eine Option, um die Aufrufliste in Ihrer Log-Nachricht enthalten:

Stacktrace:

der Stack-Trace des Protokolliervorgangs Die Stack-Trace-Level-Spezifizierer zwischen Klammern zur Ausgabe eingeschlossen werden kann, . Für Beispiel% Stacktrace {Ebene}. Wenn kein Stack-Trace-Level-Spezifizierer angegeben ist, wird 1 angenommen. Output verwendet das Format type3.MethodCall3> type2.MethodCall2> type1.MethodCall1 Dieses Muster ist nicht verfügbar für Compact Framework-Assemblies.

Auf diese Weise können Sie die Aufrufliste einschließen. Ich kenne keine Möglichkeit, die Anzahl der Frames in der Exception zu ändern. Ich weiß, dass es nicht auf 5 beschränkt ist, es druckt nur die Ausnahme ToString(). Wenn Sie einen Teil Ihres Exception-Stacks vermissen, wird die Exception vermutlich erneut ausgelöst. throw ex; Instlead von throw;

Verwandte Themen