LogManager
类有两个方法:GetLogger
和 GetCurrentClassLogger
,带有一个重载参数 Type loggerType
public static Logger GetLogger(string name, Type loggerType)
public static Logger GetCurrentClassLogger(Type loggerType)
文档指出 loggerType
是“要创建的记录器的类型”。该类型必须继承自 NLog.Logger。'
这种重载的目的是什么?为什么我可能需要创建继承类型的记录器?
最佳答案
如果您想向记录器添加一些特定行为,您可以创建自己的记录器作为 NLog 记录器的子类。
如果你在这里查看 NLog 的 github 存储库:
https://github.com/NLog/NLog/tree/master/examples/ExtendingLoggers/InheritFromLogger
您可以查看如何通过子类化 Logger 来扩展 NLog 的示例。在这个例子中,新的子类记录器 (LoggerWithEventID) 可以很容易地用“事件 ID”标记每个日志记录语句。还有其他方法可以使用不涉及子类化的事件 ID 标记每个语句,但这只是表明可以实现这样的事情。
这些重载允许开发人员开发他/她自己的自定义 Logger 实现,然后让 NLog 创建和分配这些自定义 Logger,而无需花费大量精力。
关于c# - NLog LogManager.GetLogger(String, Type) 重载的目的是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22921752/