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

时间:2014-04-07 19:52:31

标签: c# nlog

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

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

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

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

1 个答案:

答案 0 :(得分:8)

如果要向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而无需花费很多精力。