NLog-2个单独的日志文件-如何写入一个或另一个

问题描述 投票:0回答:1

我要明确写入两个不同的日志文件。基于操作的方法或类型。

如何?

我看过以下StackOverFlow帖子Having NLog loggers with different configuration

如何配置NLog?我也需要什么代码,以便可以写入一个文件或另一个文件?使用类似:log.Error("My Big Error")的代码;

帖子包含以下内容

<targets> 
    <target name="f1" xsi:type="File" fileName="${logger}.txt" />
    <target name="f2" xsi:type="File" fileName="${shortdate}.txt" />
  </targets>

所以,如果是'一般错误',我想写到f1。如果是文件操作错误,我要写入f2

提前感谢

nlog
1个回答
0
投票

在NLog配置中,您需要设置一些规则以写入目标(否则将不记录任何内容)。在这些规则中,您可以添加过滤器和条件。

简单示例

例如:

<rules>
  <logger name="Logger1" writeTo="f1" />
  <logger name="Logger2" writeTo="f2" />
</rules>

name属性在这里是一个过滤器,因此第一个规则意味着:如果记录器名称等于“ Logger1”,则写入f1。规则从上到下进行处理。

因此,当调用LogManager.GetLogger("Logger1").Info("My message")时,它将写入目标f1,而LogManager.GetLogger("Logger2").Info("My message")将写入目标f2

GetCurrentClassLogger

[使用LogManager.GetCurrentClassLogger()时,记录器名称由当前类和名称空间名称构成,例如“ MyNameSpace.MyClass”。这意味着您可以将name属性调整为name="MyNameSpace.MyClass"name="*.MyClass"进行匹配。

其他过滤规则

[还有更多过滤器选项,例如最小级别,最大级别以及更高级的过滤器(不仅针对记录器名称)。您可以阅读有关here的更多信息>

© www.soinside.com 2019 - 2024. All rights reserved.