Ok, więc patrzę na NLog. Na podstawie użycia moja aplikacja byłaby powiązana z ramą logowania. Jak mam to przezwyciężyć?Moja struktura logowania jest na zawsze związana z moją aplikacją!
Ponadto, w przypadku korzystania z NLog, muszę napisać za dużo monkey-code
dla każdej klasy, w której używam tego szkieletu. Czy dobrą praktyką jest tworzenie jednej klasy statycznej i uzyskiwanie do niej dostępu z dowolnego miejsca w mojej aplikacji?
przykład:
//the monkey code
private static Logger logger = LogManager.GetCurrentClassLogger();
//the coupling.
logger.Log(/*...*/);
Zgubiłeś interfejs w deklaracji klasy. Również lepiej "MyOwnLogger" zaakceptował instancję 'logger' jako parametr konstruktora - tak działa DI. – zerkms
Nie ma znaczenia, że LogManager.GetCurrentClassLogger ma sens: zostanie utworzony dla MyOwnLogger, ale nie dla prawdziwego miejsca, w którym rejestracja została nazwana – SiberianGuy
@zerkms: Thanks. Dodałem interfejs. Klasa 'NLogLogger' jest implementacją IMyOwnLogger za pomocą NLog, więc nie musi rejestrować się w konstruktorze. – LukLed