我在我想要记录的每个类中实例化记录器
private static Logger logger = LogManager.GetCurrentClassLogger();
然后我创建了一个带有多个辅助函数的静态类,用于记录传递记录器对象。
简单示例:
public static void LogMessage(Logger logger, LogLevel logLevel, string message)
{
StringBuilder logMessage = new StringBuilder();
logMessage.AppendLine("Message: " + message);
logger.Log(logLevel, logMessage);
}
问题是即使我在另一个类中创建了记录器,它也会记录当前类的名称(静态类)。我可以在属性列表中看到记录器的名称,并且在调用log方法时它具有正确的名称(它已被实例化的类的名称)。我试图将记录器作为ref传递,但它也做了同样的事情。
有谁知道为什么会这样?
答案 0 :(得分:1)
这是预期的行为。有一些解决方案:
LogManager.GetLogger("loggername")
并传递您的姓名或LogTo.Debug("TheMessage");