Ich habe nach Protokollierung für WCF-Dienste (einschließlich Technologien wie NLog und PostSharp) gesucht, aber ich habe etwas, das ich noch nicht gelöst habe ... Ich weiß nicht, ob ich vermisse etwas Offensichtliches oder es ist einfach nicht möglich.WCF-Dienste, Protokollierung vertikal
Angenommen, ich verfüge über eine WCF-Serviceebene mit über 100 Web-Service-Anrufeinstiegspunkten. Einer davon verursacht ein Problem. Unterhalb dieser Ebene befindet sich eine Business-Logik-Ebene und eine Datenbank-Ebene. Was ich tun möchte (denke ich), ist die Protokollierung für diesen Service-Aufruf (der die Aktivitäts-ID für die Korrelation enthalten würde), so dass alle Aufrufe an diesen Service protokolliert werden und alle Protokollnachrichten in den unteren Schichten protokolliert werden. Ich möchte die Protokollierung auf Assembly-Ebene für die unteren Ebenen nicht wirklich aktivieren, da sie von vielen Web-Service-Methoden gemeinsam genutzt werden.
Ist dies sogar möglich, über ein vorhandenes Framework oder indem man etwas wie den CorrelationManager auf kreative Weise verwendet?
Danke! Das ist genau die Art von Dingen, nach denen ich suche. Idealerweise würde ich NLog über log4net verwenden, da es ein bisschen aktiver scheint, aber genau das ist die Art von Sache, die mich dazu bringen könnte, meine Meinung zu ändern ... Hast du Code wie diesen in Wut benutzt? Wie würde es mit einem Multi-Thread-Dienst umgehen? –
log4net.ThreadContext verwendet lokalen Thread-Speicher. Solange ein Service-Aufruf keine Threads hopst (lesen Sie asych), funktioniert das in einer Multithread-Umgebung. Ja, ich habe mehrere davon für echte Enterprise-Produktionsdienste gemacht. Die letzte war, eine Korrelations-ID in alle Log-Ganzzahlen zu setzen (alles, was auf den ThreadContext geschoben wird, kann in das Konvertierungsmuster des Appenders eingeschlossen werden). Log4net ist nicht sehr aktiv, da sehr wenig fehlt und es sehr gut dokumentiert ist. Wenn Sie glauben, dass es vor Generika geschrieben wurde, behandelt es Sie gut. – ErnieL
Danke Ernie. Das war genau die Art von Dingen, die ich suchte! –