NLog LogManager.GetLogger(String,Type)重载的目的是什么

Ily*_*lya 11 c# nlog

LogManagerclass有两种方法:GetLoggerGetCurrentClassLogger,带有重载参数Type loggerType

public static Logger GetLogger(string name, Type loggerType)
public static Logger GetCurrentClassLogger(Type loggerType)
Run Code Online (Sandbox Code Playgroud)

文档说明loggerType'要创建的记录器的类型.该类型必须从NLog.Logger继承.

这种超载的目的是什么?为什么我需要创建继承类型的记录器?

wag*_*ghe 9

如果要向Logger添加某些特定行为,可以创建自己的Logger作为NLog Logger的子类.

如果你在这里查看NLog的github存储库:

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

您可以通过继承Logger来查看如何扩展NLog的示例.在示例的情况下,新的子类Logger(LoggerWithEventID)可以很容易地使用"事件ID"标记每个日志记录语句.还有其他方法可以使用不涉及子类化的事件ID来标记每个语句,但这只是表明可以实现这样的事情.

这些重载允许开发人员开发他/她自己的自定义Logger实现,然后让NLog创建并分配这些自定义Logger而无需花费很多精力.