LogManager.GetLogger(“ Name”)和LogManager.GetCurrentClassLogger()有什么区别?

时间:2019-07-31 19:09:13

标签: c# logging web-applications nlog

有人能详细解释我吗?在网上搜索,但没有得到满意的答案。我正在使用NLog登录CSV文件。 LogManager.GetLogger方法工作正常,但如果我将使用LogManager.GetCurrentClassLogger(),则该方法无效。为什么呢?

1 个答案:

答案 0 :(得分:0)

LogManager.GetCurrentClassLogger()将在调用的堆栈跟踪中搜索以找到调用者的完整类名(即名称空间和类名)。

完整的类名称将用作记录器名称。

LogManager

中的相关代码
public static Logger GetCurrentClassLogger()
{
   return factory.GetLogger(StackTraceUsageUtils.GetClassFullName());
}

因此,如果您在LogManager.GetCurrentClassLogger()内调用MyNamespace.MyClass,则会得到一个名称为“ MyNamespace.MyClass”的Logger