【问题标题】:NLog log to a specific target mentioned in the configNLog 记录到配置中提到的特定目标
【发布时间】:2018-08-09 03:20:03
【问题描述】:

我有一个带有以下 NLog 配置的控制台应用程序

<targets async="true">
    <target name="Afile" xsi:type="File" fileName="c:\users\a\Logs\ALog.txt" />
    <target name="Bfile" xsi:type="File" fileName="c:\users\a\Logs\BLog.txt" />
    <target name="Cfile" xsi:type="File" fileName="c:\users\a\Logs\CLog.txt" />
    <target name="Dfile" xsi:type="File" fileName="c:\users\a\Logs\DLog.txt" />
    <target name="Efile" xsi:type="File" fileName="c:\users\a\Logs\ELog.txt" />
    <target name="Ffile" xsi:type="File" fileName="c:\users\a\Logs\FLog.txt" />
    <target name="Gfile" xsi:type="File" fileName="c:\users\a\Logs\GLog.txt" />
 </targets>

   <rules>
    <logger name="*" minlevel="Debug" writeTo="Afile" />
    <logger name="*" minlevel="Debug" writeTo="Bfile" />
    <logger name="*" minlevel="Debug" writeTo="Cfile" />
    <logger name="*" minlevel="Debug" writeTo="Dfile" />
    <logger name="*" minlevel="Debug" writeTo="Efile" />
    <logger name="*" minlevel="Debug" writeTo="Ffile" />
    <logger name="*" minlevel="Debug" writeTo="Gfile" />
  </rules>

控制台应用程序在从 A 到 F 的任意位置使用一个参数,根据执行期间定义的参数,我想将日志写入特定的日志文件 所以,如果我的应用程序使用参数 A 执行,我希望我的应用程序写入目标 Afile 并相应地写入其他参数

【问题讨论】:

  • 为什么要使用 NLog?似乎只是让你的场景变得更加复杂。如果日志文件在执行过程中没有改变并且完全依赖于一个运行时参数,那么使用 NLog 来写一个文件似乎有点过头了。
  • 我们还没有设置Nlog,那你有什么建议?
  • 但我也想知道它是否可行
  • 如果要使用NLog,最好configure NLog through code。
  • 艾米,这是在运行时向配置中添加目标。这可能是一种方法。但是,如果我已经配置了它怎么办。我可以根据传递的参数选择特定的目标配置吗?

标签: c# .net nlog


【解决方案1】:

你可以这样做:

<targets async="true">
   <target name="onefile" xsi:type="File" fileName="c:\users\a\Logs\${gdc:item=CmdArg}Log.txt" />
</targets>

<rules>
   <logger name="*" minlevel="Debug" writeTo="onefile" />
</rules>

然后在进行任何日志记录之前配置以下变量:

NLog.GlobalDiagnosticsContext.Set("CmdArg","someValue");

另见https://github.com/NLog/NLog/wiki/Gdc-layout-renderer

【讨论】:

  • 工作就像一个魅力......谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
  • 2011-03-18
  • 2012-10-26
  • 2016-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多