4

我找不到有关如何修改配置文件以便输出传递给嵌套诊断上下文的字符串的示例。

这是 C# 代码:

using (NLog.NestedDiagnosticsContext.Push(DateTime.Now.Ticks.ToString()))
{
//some logging
}

这是 web.config 中的 nLog 条目(不知道如何修改它):

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <!-- make sure to set 'Copy To Output Directory' option for this file -->
    <targets>
      <target name="logfile" xsi:type="File" fileName="somepath\\logfile.txt" />
    </targets>

    <rules>
      <logger name="*" minlevel="Debug" writeTo="logfile" />
    </rules>
  </nlog>
4

1 回答 1

5

刚刚想通了。找到了 MDC 的示例。只是为 NDC 稍微调整了一下。这是更新的配置:

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

      <variable name="mycontext" value="${ndc:item=mycontext} -  ${longdate} -  ${message} "/>
      <targets>
        <target name="logfile" xsi:type="File" fileName="somepath\\logfile.txt" layout="${mycontext}"/>
    </targets>

    <rules>
      <logger name="*" minlevel="Debug" writeTo="logfile" />
    </rules>
  </nlog>
于 2013-06-14T12:10:47.543 回答