C# 在NLog中添加方法名

C# 在NLog中添加方法名,c#,nlog,C#,Nlog,我正在使用NLog,并遵循建议的模式,在每个类上声明日志,以便能够跟踪哪个类/方法已写入日志。我发现在每次日志写入时都有一点顶级的“堆栈跟踪”非常有用 我的代码以前是这样的: class SomeClass { private static readonly Logger logger = LogManager.GetCurrentClassLogger(); void DoStuff() { logger.Debug("stuff"); } } 我

我正在使用NLog,并遵循建议的模式,在每个类上声明日志,以便能够跟踪哪个类/方法已写入日志。我发现在每次日志写入时都有一点顶级的“堆栈跟踪”非常有用

我的代码以前是这样的:

class SomeClass {

  private static readonly Logger logger = LogManager.GetCurrentClassLogger();
     void DoStuff()   {
      logger.Debug("stuff");   }   

}
我最近要求我的单个项目写入3个单独的日志文件,为此,我添加了多个记录器和目标,如下所述:

但是,现在在我的日志文件中,我丢失了类级别名称。它现在只写入我在NLog.config中指定的日志名。我已经考虑过简单地添加方法名,并调用

System.Reflection.MethodBase.GetCurrentMethod(); // use Name property
或者在反射中使用其他东西,比如

然而,我想知道NLog是否有我所缺少的东西?Debug()方法我只看到编写带有参数的字符串的能力&可选格式化

这是NLog内置的吗

您可以使用以下方法将调用站点信息(类名、方法名和源信息)包括在日志条目中:

<targets>
  <target
    name="task1File"
    xsi:type="File"
    layout="${callsite} - ${message}"
    fileName="${basedir}../Data/debugLog1.txt"
    archiveAboveSize ="5000000"
    maxArchiveFiles="2"/>
  <target
    name="task2File"
    xsi:type="File"
    layout="${callsite} - ${message}"
    fileName="${basedir}../Data/debugLog2.txt"
    archiveAboveSize ="5000000"
    maxArchiveFiles="2"/>
</targets>

你检查了吗?就是这样-你能用这个解决方案回答这个问题吗?这样我就可以给你适当的分数了?谢谢