ich log4net api in meiner WinForms-Anwendung für die Anmeldung verwenden. Ich habe mehrere Appender: RollingFileAppender und TextBoxAppender (benutzerdefinierte Appender).log4net Log-Meldungen nur auf ein paar Appen
Ich möchte ein paar Fehlermeldungen nur in der Protokolldatei (RollingFileAppender) und nicht auf das Textfeld (TextBoxAppender), und einige andere Nachrichten an loggt sein. Wie kann ich es erreichen? Beachten Sie, dass die Nachrichten die gleiche Ebene haben, d. H. Alle ERROR-Nachrichten.
Danke.
EDIT 1:
Insbesondere möchte ich in der Protokolldatei nur einfach eine Zeile Fehlermeldungen in der Benutzeroberfläche sowie Protokolldatei, aber stacktraces anzuzeigen.
Obwohl Sie * kann * tun dies mit nur einem Logger (durch geeignete Anwendung von f Filter) Dies geht gegen den Strich von log4net. Was Sie in der Regel tun mögen, ist getrennten Logger für jede Konfiguration verwenden und fügen Sie Appen zu diesen Loggern gegebenenfalls ('FileLogger',' UILogger', 'UniversalLogger', so ähnlich). Beachten Sie, dass Protokollierer Appender freigeben können. Auch –
wenn ich getrennte Logger verwenden war, wie kann ich die Nachrichten von der gleichen Ebene filtern, zB einige Meldungen von Protokollebene ERROR werden im UILogger gezeigt, und einige Nachrichten von derselben Protokollebene ERROR, gezeigt werden NICHT. Im Grunde, was Sie vorschlagen, ist, dass jeder Ort ich die beiden Logger wie erforderlich aufrufen müssen, wie logger1.Error() und logger2.Error() – AllSolutions
Die Verwendung von mehreren Logger-Instanzen kann in Ordnung sein, wo ich senden möchte Die Log-Nachricht nur an 1 Ziel, aber die Mehrheit der Fälle erfordern Nachrichten an beide Logger gesendet werden – AllSolutions