Спасибо, очень помогло!
В итоге родился вот такой nlog.config (обратите внимание на переменную
CONTEXT):
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
autoReload="true">
<variable name="LEVEL" value="${pad:padding=5:inner=${level:uppercase=true}}" />
<variable name="CONTEXT" value="${when:when='${ndlc}'!='':inner=CTX=${ndlc}}" />
<variable name="CALLER" value="${logger}:${callsite-linenumber}:${callsite:includeNamespace=false:className=false:methodName=true}()" />
<targets>
<target name="ColoredConsole" xsi:type="ColoredConsole" useDefaultRowHighlightingRules="false"
layout="${newline}${time:invariant=true} ${var:LEVEL} ${var:CONTEXT}${newline}${var:CALLER}${newline}${message}"
>
<highlight-row condition="level == LogLevel.Trace" foregroundColor="Cyan" />
<highlight-row condition="level == LogLevel.Debug" foregroundColor="Green" />
<highlight-row condition="level == LogLevel.Info" foregroundColor="Gray" />
<highlight-row condition="level == LogLevel.Warn" foregroundColor="Yellow" />
<highlight-row condition="level == LogLevel.Error" foregroundColor="Red" />
<highlight-row condition="level == LogLevel.Fatal" foregroundColor="Red" backgroundColor="White" />
</target>
<target name="TraceLog" xsi:type="File"
layout="${newline}${time:invariant=true} ${var:LEVEL} ${var:CONTEXT} ${newline}${var:CALLER}${newline}${message}"
fileName="${basedir}/Logs/${machinename}_${shortdate}_${aspnet-application}.log"
keepFileOpen="false"
encoding="utf-8"
maxArchiveFiles="1"/>
<target name="Debugger" xsi:type="Debugger"
layout="${time:invariant=true} ${var:LEVEL} ${var:CONTEXT} ${var:CALLER} ${message}"
/>
</targets>
<rules>
<logger name="*" minlevel="Trace" maxlevel="Fatal" writeTo="ColoredConsole" />
<logger name="*" minlevel="Trace" maxlevel="Fatal" writeTo="TraceLog" />
<logger name="*" minlevel="Trace" maxlevel="Fatal" writeTo="Debugger" />
</rules>
</nlog>