Bei der Erstellung von Enterprise-Bibliotheken, die für die Wiederverwendung in einem größeren Umfang konzipiert sind, finde ich mich häufig über die Umsetzung von übergreifenden Design-Bedenken einfrieren, da diese wirklich schwer richtig werden können. Heute sitze ich daran, den besten Weg zu analysieren, um Tracing und Diagnose in einer wiederverwendbaren Unternehmensbibliothek durchzuführen.Wie kann ich die Ablaufverfolgung und Diagnose auf Bibliotheksebene SOLID in .NET implementieren?
Wenn man sich die BCL von .NET ansieht, scheint es, dass Protokollierung und Diagnose ein nicht-trivialer Teil des Frameworks ist.
System.Diagnostics hat die Trace-Familie von Arten, für die Ausführung Verfolgung verwendet und app.config freundliche Beschaffung und Abonnement (für die Zuhörer.), Die das gesagt ist, neige ich dazu app.config im Allgemeinen zu hassen und vermeide eher das lose typisierte Geheimnis, das mit magischen Konfigurationszeichenfolgen kommt.
System.Diagnostics.Tracing verfügt über die EventSource-Familientypen, die für die ereignisbasierte Diagnose verwendet werden. Dies ist mehr mein Typ, aber es ist mir nicht klar, ob und wie dies in Bibliotheken verwendet werden sollte, da die Protokollierungsrichtlinie ein Anliegen der Anwendung ist, mehr als die Domänenbibliotheken.
Eine Möglichkeit, das macht Sinn für mich ist, einfach in meiner Stiftung Domäne Bibliothek einige gemeinsame Protokollierung Schnittstellen zu definieren und ermöglichen Anwendungen Implementierungen über eine Art von Umgebungskontext Muster zu injizieren, aber meine eigenen Protokollierungstypen für diese definieren scheint unnötig.
Dies spiegelt meine Gedanken ebenso. Ich mag es nicht, Fabriken zu überbeanspruchen, aber um Komponentennähte zu überqueren, sind sie oft nützlich, um die gewünschte Nutzung durchzusetzen. –
Die Protokollierung sollte keine Abhängigkeit sein, daher sollte die Bibliothek funktionieren, wenn der Benutzer die Protokollimplementierung nicht bereitstellt. Jetzt können Sie überlegen, wie Sie mit dieser Situation umgehen sollen. – vendettamit