c# - LogManager.GetLogger ("Name") 和 LogManager.GetCurrentClassLogger() 有什么区别?

标签 c# logging web-applications nlog

有人可以详细解释一下吗?在网上搜索但没有得到满意的答案。我正在使用 NLog 登录 csv 文件。 LogManager.GetLogger 方法工作正常,但如果我将使用 LogManager.GetCurrentClassLogger() 则它不起作用。这是为什么?

最佳答案

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

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

LogManager中的相关代码

public static Logger GetCurrentClassLogger()
{
   return factory.GetLogger(StackTraceUsageUtils.GetClassFullName());
}

因此,如果您在 MyNamespace.MyClass 中调用 LogManager.GetCurrentClassLogger(),您将获得一个名为“MyNamespace.MyClass”的 Logger

关于c# - LogManager.GetLogger ("Name") 和 LogManager.GetCurrentClassLogger() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57297440/

相关文章:

PHP 与 JavaScript 或 Flash

javascript - 使用 :FORM_APP_NAME Variable on PriorityERP

javascript - AppCache 在 iOS 上非常慢

c# - 在 WPF 中的两个用户控件之间发送命令

c# - 如何使用 c# (visual studio 2008) 实现决策树 - 帮助

postgresql - WAL 缓冲区在事务提交之前填满

java - 记录异常和Exception.printstacktrace之间的区别

python - Scrapy:在没有 ScrapyFileLogObserver() 的情况下记录到文件

c# - CA1023背后的原因是什么

c# - 如何在 C# 中制作 SOAP/WSDL 客户端?