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

本文关键字:重载 是什么 Type GetLogger String NLogLogManager | 更新日期: 2023-09-27 17:57:27

LogManager类有两种方法:GetLoggerGetCurrentClassLogger,过载采用参数Type loggerType

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

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

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

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

如果您想向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,而无需花费大量精力。