Какова цель перегрузки NLog LogManager.GetLogger(String, Type)

LogManager класс имеет два метода: GetLogger и GetCurrentClassLogger, с параметром перегрузки Type loggerType

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

В документации указано, что loggerType - это тип создаваемого регистратора. Тип должен наследовать от NLog.Logger. '

Какова цель таких перегрузок? Зачем мне нужно создавать регистраторы унаследованных типов?

Ответ 1

Вы можете создать свой собственный Logger в качестве подкласса NLog Logger, если вы хотите добавить какое-то конкретное поведение к вашему Logger.

Если вы посмотрите в репозиторий NLog github:

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

Вы можете увидеть пример расширения NLog путем подкласса Logger. В случае примера новый подклассифицированный Logger (LoggerWithEventID) упрощает привязку каждого оператора регистрации к "идентификатору события". Существуют и другие способы пометить каждый оператор идентификатором события, который не связан с подклассом, но это просто показывает, что можно реализовать такую ​​вещь.

Эти перегрузки позволяют разработчику разрабатывать собственную собственную реализацию Logger, а затем NLog создает и распределяет эти пользовательские Loggers, не затрачивая при этом много усилий.