C# Nlog未记录正确的记录器';姓名
我在每个类中实例化记录器,我想这样记录C# Nlog未记录正确的记录器';姓名,c#,.net,nlog,C#,.net,Nlog,我在每个类中实例化记录器,我想这样记录 private static Logger logger = LogManager.GetCurrentClassLogger(); 然后,我创建了一个静态类,其中包含多个帮助函数,用于记录日志并传递logger对象 一个简单的例子: public static void LogMessage(Logger logger, LogLevel logLevel, string message) { StringBuilder
private static Logger logger = LogManager.GetCurrentClassLogger();
然后,我创建了一个静态类,其中包含多个帮助函数,用于记录日志并传递logger对象
一个简单的例子:
public static void LogMessage(Logger logger, LogLevel logLevel, string message)
{
StringBuilder logMessage = new StringBuilder();
logMessage.AppendLine("Message: " + message);
logger.Log(logLevel, logMessage);
}
问题是,即使我在另一个类中创建了记录器,它也会记录当前类(静态类)的名称。我可以在属性列表中看到记录器的名称,并且在调用log方法时它具有正确的名称(它被实例化的类的名称)。我试图将记录器作为ref传递,但它做了同样的事情
有人知道为什么会这样吗?这是预期的行为。有一些解决方案:
- 只需为每个类创建一个静态记录器,即
- 使用
并传递您的姓名,或LogManager.GetLogger(“loggername”)
- 使用NLog中包含的fluent日志记录,请参阅,或
- 在:
LogTo.Debug(“TheMessage”)中使用静态类代码>
logger.LogMessage(INFO,“msg”)代码>而不是which.LogMessage(记录器,