使NLog记录器具有不同的配置

max*_*max 19 c# configuration logging nlog

在NLog中是否可以创建具有不同配置的多个记录器?

我有一个组件,每次实例化必须将所有事件记录到与新实例相关的不同文件.

NLog可以实现吗?如果没有,那么有日志框架可以做到这一点吗?

wag*_*ghe 22

是的,你可以这样做.您可以配置该类型的记录器以记录到特定目标.或者,您可以将该类型的记录器配置为记录到目标(例如文件),并根据记录器名称(自动)命名文件.

有关示例,请参阅此处NLog配置文件文档.

此外,请参阅我的帖子,了解一些配置文件提示.

下面是一个非常简单的示例,说明如何配置两个记录器:一个用于记录到为该类型命名的输出文件的特定类型,另一个用于根据日期记录到文件的所有其他记录器.

<nlog>
  <targets> 
    <target name="f1" xsi:type="File" fileName="${logger}.txt" />
    <target name="f2" xsi:type="File" fileName="${shortdate}.txt" />
  </targets>
  <rules>
    <logger name="Name.Space.Class1" minlevel="Trace" writeTo="f1" />  
    <logger name="*" levels="Debug" writeTo="f2" />
  </rules>
</nlog>
Run Code Online (Sandbox Code Playgroud)

如果您希望Name.Space.Class1类型的日志转到"特殊"文件(即名称由记录器确定的文件),那么您可以将"final"添加到记录器规范中,如下所示:

<logger name="Name.Space.Class1" minlevel="Trace"final="true" />
Run Code Online (Sandbox Code Playgroud)

  • 新配置文件链接https://github.com/nlog/NLog/wiki/Configuration-file (2认同)