2014-04-07 15 views
10

LogManager klasa dwie metody: GetLogger i GetCurrentClassLogger, z przeciążeniem biorąc parametru Type loggerTypeJaki jest cel nlog LogManager.GetLogger (String, Type) przeciążeniowym

public static Logger GetLogger(string name, Type loggerType) 
public static Logger GetCurrentClassLogger(Type loggerType) 

dokumentacja wskazuje, że loggerType jest „typem rejestrator do utworzenia. Typ musi dziedziczyć po NLog.Logger. "

Jaki jest cel takich przeciążeń? Dlaczego muszę tworzyć rejestratory dziedziczonych typów?

Odpowiedz

8

Możesz stworzyć swój własny Logger jako podklasę Logogera NLog, jeśli chcesz dodać pewne specyficzne zachowanie do Logger.

Jeśli spojrzeć na github repozytorium nlog tu:

https://github.com/NLog/NLog/tree/master/examples/ExtendingLoggers/InheritFromLogger

można zobaczyć przykład jak rozszerzyć NLog przez instacji Logger. W przypadku przykładu, nowy subklasyzowany Logger (LoggerWithEventID) ułatwia oznaczanie każdej instrukcji rejestrowania "identyfikatorem zdarzenia". Istnieją inne sposoby oznaczania każdej instrukcji identyfikatorem zdarzenia, który nie obejmuje podklasy, ale pokazuje to tylko, że można ją zaimplementować.

Przeciążenia te umożliwiają programistom opracowanie własnej niestandardowej implementacji rejestratora, a następnie mają możliwość tworzenia i dystrybuowania tych niestandardowych rejestratorów bez większego wysiłku.