9 Stimmen

log4net/c# - Unterschiedliches Layout basierend auf der Ebene

Gibt es eine Möglichkeit, bei der Verwendung von log4net ein unterschiedliches Layout je nach Ebene der Protokollmeldung zu erhalten? Wenn es sich beispielsweise um einen schwerwiegenden Fehler handelt, möchte ich alle möglichen Informationen sehen - Klassenname, Methodenname, Zeilennummer usw. Aber für normale, Debug- und Warnmeldungen möchte ich nur die Meldung sehen (ich hoffe, dies kann die Leistung erhöhen).

Ich verwende log4net in C# WinForms. Meine Anforderung ist es, alle vorherigen 512 Nachrichten in eine Datei zu protokollieren, wenn ein schwerwiegender Fehler auftritt, und ich möchte Klassenname, Methodenname, Zeilennummer usw. nur für schwerwiegende Fehler, für alle anderen Ebenen, nur eine Nachricht zu sehen.

0 Stimmen

Die Antwort, die Sie suchen, lautet aquí

2voto

Switters Punkte 1563

Dieser Beitrag enthält eine gute Erklärung einer log4net-Konfigurationsdatei:

log4net Konfiguration

Achten Sie auf die Layout-Elemente in den Appendern. Sie legen das Muster fest, nach dem der Fehler und die von Ihnen gewählten Informationen ausgegeben werden.

2voto

Brandon Langley Punkte 553

Ich glaube, Sie suchen nach LevelRangeFilter und einer Kombination aus zwei Absendern. Eine Appender/Filter-Kombination für FATAL Ebene (fatal ist die minimale und maximale) und eine Appender/Filter-Kombination für alles andere (mit ERROR oder INFO ist die maximale, je nachdem, ob Sie Fehler für Debugging-Zwecke einschließen wollten)

Beispiel hier: Welche Einstellungen haben Sie in Ihrer log4net-Konfiguration? Hacks, Optimierungen, Beobachtungen?

1voto

lotsoffreetime Punkte 1070

Sie könnten einfach einen anderen Appender für jede "Ebene" verwenden und sie bis auf das Musterlayout identisch gestalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X