在NLog中为某些目标添加前缀

时间:2014-04-23 11:50:18

标签: c# nlog

我的NLog.config中有7个不同的规则:

<logger name="*" minlevel="Info" writeTo="logfile" />
<logger name="Access" minlevel="Info" writeTo="AccessLog" />
<logger name="Authentication" minlevel="Info" writeTo="AuthenticationLog" />
<logger name="Foundation" minlevel="Info" writeTo="FoundationLog" />
<logger name="Server" minlevel="Info" writeTo="ServerLog" />
<logger name="WorkflowEngine" minlevel="Info" writeTo="WorkflowEngineLog" />
<logger name="Plugins" minlevel="Info" writeTo="PluginsLog" />

我希望写入logfile的日志条目具有包含loggername的前缀,但我不希望其他日志文件包含前缀,因为它们只包含来自一个特定记录器的日志条目。可以吗?

1 个答案:

答案 0 :(得分:1)

您可以使用${logger} rendererlogfile布局中输出当前记录器名称。

所以你需要这样的东西:

<targets>
    <target xsi:type="File" name="logfile" fileName="logfile.log" 
          layout="${longdate} ${logger} ${level} ${message}" />
</targets>
<rules>
    <logger name="*" minlevel="Info" writeTo="logfile" />
</rules>