首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Nlog未记录正确记录器的名称

Nlog未记录正确记录器的名称
EN

Stack Overflow用户
提问于 2016-04-06 14:06:36
回答 1查看 762关注 0票数 1

我在我想要记录的每一个类中实例化记录器

代码语言:javascript
运行
复制
private static Logger logger = LogManager.GetCurrentClassLogger();

然后,我创建了一个带有多个助手函数的静态类,用于日志记录,传递记录器对象。

一个简单的例子:

代码语言:javascript
运行
复制
    public static void LogMessage(Logger logger, LogLevel logLevel, string message)
    {
        StringBuilder logMessage = new StringBuilder();
        logMessage.AppendLine("Message: " + message);
        logger.Log(logLevel, logMessage);
    }

问题是,即使我在另一个类中创建了记录器,它也会记录当前类的名称(静态类)。我可以在属性列表中看到记录器的名称,并且在调用log方法时它有正确的名称(它被实例化的类的名称)。我试着把记录器传递给裁判,但它也是这样做的。

有人知道为什么会这样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-15 07:49:58

这是预期的行为。有一些解决办法:

  • 只需创建每个类的静态记录器,即推荐,或
  • 使用LogManager.GetLogger("loggername")并传递您的姓名,或
  • 使用NLog中包含的fluent日志记录,请参阅新闻邮报
  • 福迪阿诺塔尔LogTo.Debug("TheMessage");中使用静态类
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36453590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档