Ich habe begonnen, die integrierten TraceSource und TraceListener-Klassen und ich möchte das Ausgabeformat der Ereignisse unabhängig von den TraceSources und TraceListeners ändern. Es scheint, dass die TraceListeners ihre eigene Formatierung anwenden. Ist es möglich, die Formatierung vollständig zu ändern, ohne für jeden von mir verwendeten TraceListener eine neue Klasse zu erstellen?Hat das .Net-TraceSource/TraceListener-Framework etwas Ähnliches wie log4nets Formatters?
Antwort
Der Enterprise Library Logging-Anwendungsblock (http://msdn.microsoft.com/en-us/library/cc309506.aspx) basiert auf den Klassen .Net TraceSource und TraceListener (so dass Sie ihn einfach in Ihr Projekt einfügen können und es funktioniert) und unterstützt einen Nachrichtenformatierer kann in der web.config (oder app.config) konfiguriert werden.
Sie können die direkten Write()
oder WriteLine()
Methoden auf Trace
verwenden, um geraden Text in Ihren TraceListener zu setzen.
Die Frage ist über TraceSource, nicht Trace. – agarcian
Dies ist viel zu spät, aber für alle Nachzügler, die nach einer TraceSource/TraceListener-Lösung suchen, die eine ähnliche Formatierung wie in log4net, NLog und LAB unterstützt, könnten Sie versuchen Ukadc.Diagnostics. Sie können die von Ukadc bereitgestellten TraceListeners mit einer Formatierungszeichenfolge konfigurieren, und sie wird angewendet, wenn Traces zum Listener geschrieben werden. Sie können auch eigene Token schreiben und sie zur Formatierung hinzufügen. Zum Beispiel habe ich einen zum Spaß geschrieben, der einfach einen Zähler jedes Mal erhöht, wenn sein Wert abgerufen wird. Das Ergebnis ist, dass in der Protokolldatei jede Zeile eine sequenziell steigende Nummer erhält. Ich habe eine weitere geschrieben, die es ermöglicht, Informationen aus Trace.CorrelationManager.LogicalOperationStack zur Ausgabe hinzuzufügen.
Ich habe jetzt keinen einfachen Zugriff auf meinen Computer, der daran arbeitet, oder ich würde diese Beispiele veröffentlichen.
Für alle, die hier landen und immer noch nach einer benutzerdefinierten Formatierung für TraceListeners suchen, gibt es auch Essential.Diagnostics https://essentialdiagnostics.codeplex.com/ (Offenlegung: Ich bin in das Projekt involviert).
Um die ursprüngliche Frage zu beantworten, kann ein TraceListener benutzerdefinierte Eigenschaften in der Konfiguration akzeptieren, so dass es möglich ist, einen TraceListener zu schreiben, der mehrere Formate basierend auf Konfiguration verarbeitet, was flexibler als das Schreiben mehrerer ist.
Dies ist, was Essential.Diagnostics hat, es hat sowohl einen ColoredConsoleTraceListener als auch RollingFileTraceListener, die benutzerdefinierte Formatzeichenfolgen unterstützen, mit vielen Formatwerten bereits verfügbar.
- 1. Hat JUnit 3 etwas Ähnliches wie @BeforeClass?
- 2. Hat jQuery etwas ähnliches wie YUIs getDocumentScrollTop?
- 3. tut XElement etwas ähnliches hat XmlNodeList
- 4. Hat Asp.net-Webseiten etwas ähnliches wie Html.Partial in Razor
- 5. Hat Ruby etwas ähnliches wie Buildout oder virtualenv?
- 6. Hat R etwas Ähnliches wie TransformedDistribution in Mathematica?
- 7. Hat irgendein Programm .DS_Store (oder ähnliches) für etwas Nützliches benutzt?
- 8. etwas Ähnliches wie stdlib bsearch, das sofort kleineres Element zurückgibt
- 9. mciSendString, sucht etwas ähnliches wie Befehl "Warten"
- 10. Etwas ähnliches wie jMonkey Engine für C#
- 11. Etwas ähnliches wie PHP SimpleXML in Python?
- 12. ReSharper (oder etwas ähnliches) für Qt?
- 13. Gibt es etwas Ähnliches wie GTK + 's GtkSizeGroup in Qt?
- 14. Dateierstellungszeit über PHP (oder etwas Ähnliches)
- 15. ReSharper (oder etwas ähnliches) für Visual C++?
- 16. Sind native JavaScript-Funktionen etwas "superglobales" -ähnliches?
- 17. Gibt es etwas Ähnliches wie "self" in einem Python-Generator?
- 18. hat Java etwas ähnlich wie C# Eigenschaften?
- 19. Hat DateTimeFormatter etwas Ähnliches wie die DateTimeFormatter # withOffsetParsed() -Methode von Joda?
- 20. Wie implementiert man etwas Ähnliches wie die @Override Java Annotation?
- 21. Gibt es etwas Ähnliches wie Androids Ressourcensystem in kleinerem Maßstab?
- 22. Hat IE etwas Ähnliches wie -moz-border-radius in Firefox/Chrome?
- 23. Hat Postgres etwas Ähnliches wie die virtuellen privaten Datenbanken von Oracle?
- 24. Gibt es in Java etwas Ähnliches wie WebClient.DownloadString?
- 25. Hat Python etwas wie C++ mit Schlüsselwort?
- 26. Gibt es in XCode etwas Ähnliches wie "Add Service Reference"?
- 27. Hat Rust etwas wie scanf?
- 28. Wie kann ich einen BackgroundWorker anhalten? Oder etwas Ähnliches
- 29. Gibt es in PHP etwas Ähnliches wie NEGATIVE_INFINITY?
- 30. Gibt es etwas ähnliches wie HttpURLConnection in Perl?
EntLib hat sehr schlechte Leistung, daher empfehle ich, es nicht zu verwenden. Vergleich hier: https://essentialdiagnostics.codeplex.com/wikipage?title=Comparison&referringTitle=Guidance –