Ich versuche, einige Logging-Abhängigkeiten zu entfernen und stolperte über Castle Windsor Logging-Anlage. Allerdings bin ich skeptisch, ob ich es benutzen soll oder nicht.Castle Windsor Logging-Anlage
public class MyClass
{
public Castle.Core.Logging.ILogger Logger { get; set; }
...
}
Die Protokollierungsfunktion von Windsor erfordert, dass Sie Ihren Logger als Eigenschaft aussetzen. Ist das wirklich eine gute Übung? Ich habe das Gefühl, dass ich die Verkapselung fast kaputt mache, denn normalerweise ist es mir egal, wenn ich eine Komponente wiederverwende, dass es sich um einen Protokollierungsmechanismus handelt, und normalerweise möchte ich es nicht sichtbar machen.
Wenn ich einen benutzerdefinierten Wrapper verwenden, der eine statische Klasse verwendet, um das Protokoll zu erstellen, kann ich es privat halten. Zum Beispiel:
public class MyClass
{
private static MyCustomWrapper.ILogger Logger = LogManager.GetLogger(typeof(MyClass));
...
}
habe ich suchte im Internet aus Gründen, warum ich die Protokollfunktion verwenden soll, aber ich bin nur Artikel auf wie zu verwenden, aber nicht warum finden Ich sollte es benutzen. Ich habe das Gefühl, dass ich den Punkt vermisse. Die Logging-Komponente ausgesetzt zu haben, macht mir irgendwie Angst.
Aber wäre ich nicht schon an 'Castle.Core.Logging.ILogger' gekoppelt? Oder liegt es daran, dass 'LogManager' eine statische Klasse ist und ich sie nicht ersetzen kann? – Books
@Ashley: genau. Es gibt viel weniger Kopplung mit einer Schnittstelle. –