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

标签 c# nlog

LogManager 类有两个方法:GetLoggerGetCurrentClassLogger,带有一个重载参数 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/

相关文章:

c# - DistanceTransform 在 OpenCVSharp 中不起作用吗?

c# - 是否可以将 Func<T> 存储在字典中?

c# - SharpSVN 使用 'SvnLookClient' 获取提交后 Hook

.net - 日志记录框架和多线程兼容性

c# - NLog 的版本冲突

c# - 生成的 C# 代码是否有任何 #pragma 或类似指令将模板代码行号与 C# 行号匹配?

c# - 如何修复带边框的 ToolStripStatusLabel 中的背景颜色渗色

logging - 是否有 NLog LayoutRender 来获取 web.config appSettings 键?

asp.net - Sentry/NLog 集成未记录到 Sentry

c# - 在 ASP.NET Core 应用程序中使用 NLog