2010-11-26 9 views
4

Ich möchte Common.Logging verwenden, um Abhängigkeiten von einem bestimmten Protokollierungsframework zu entfernen, aber ich bin mir nicht sicher, wie die ILog-Schnittstelle mit dem Castle Windsor IoC verdrahtet wird Container. Gibt es eine Möglichkeit, dies zu tun? Vielen Dank!Verwenden von Common.Logging mit Asp.net MVC und Castle Windsor

+0

container.Register ( Component.For () .Instanz (Common.Logging.LogManager.GetLogger ("FileAppender"))); –

Antwort

4

Erstellen Sie Ihre eigene Einrichtung für Common.Logging, überprüfen Sie, wie es für die vorhandenen Logging Facility in Windsor getan wird. Common.Logging hat wahrscheinlich eine Loggerfabrik, die Sie in der Einrichtung verwenden würden, um einen Logger zu erstellen.

Oder Sie könnten sich die Arbeit sparen und einfach Castle's ILogger mit der Protokollierung verwenden: Windsor wird ILogger-Instanzen in Ihre Klassen für Sie injizieren. Funktioniert mit log4net und NLog v2.

7

Wollen Sie wirklich beides machen? (Verwenden Sie Common.Logging UND injizieren Sie es über Castle Windsor IoC?) Mit Common.Logging kann Ihre App keine feste Abhängigkeit von einem bestimmten Logging-Framework haben (z. B. log4net, NLog, Enterprise Logging). Ich benutze Castle nicht, aber mein Verständnis ist, dass seine Holzfällerei ein ähnliches Ziel verfolgt. Sie können Castle Windsor so konfigurieren, dass ein bestimmtes Protokollierungsframework (z. B. log4net oder NLog) verwendet wird. Ihre Anwendung muss jedoch nicht darauf achten, welches Protokollierungsframework letztendlich verwendet wird.

Injizieren Common.Logging über Schloss Windsor scheint wie einen Gürtel UND Hosenträger zu tragen, um Ihre Hosen hoch zu halten! Sie würden eine Logging-Abstraktion über Castle Windsors eigene Logging-Abstraktion faktorisieren!

Meine Vermutung ist, dass Sie wirklich eine Technologie oder andere (Common.Logging oder Castle Windsor Protokollierung) verwenden möchten.

Wenn Sie wirklich injizieren wollen Common.Logging über Schloss Windsor, könnten Sie diesen Link hilfreich:

Logging with Castle.Facilities.Logging and log4net

Unter anderem beschreibt sie, wie Sie eigene Schloss Windsor Protokollierungsfunktion schreiben von Castle Windsor injiziert werden.

Verwandte Themen