سؤال

I have 7 different rules in my NLog.config:

<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" />

I want the log-entries written to logfile to have a prefix containing the loggername, but i dont want the other logfiles to contain the prefix since they only contain log-entries from one specific logger. Can it be done?

هل كانت مفيدة؟

المحلول

You can use the ${logger} renderer to output the current logger name in your logfile layout.

So you need something like:

<targets>
    <target xsi:type="File" name="logfile" fileName="logfile.log" 
          layout="${longdate} ${logger} ${level} ${message}" />
</targets>
<rules>
    <logger name="*" minlevel="Info" writeTo="logfile" />
</rules>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top