Re[2]: NLog - target.layout выводить сонтекст только если он ус
От: Yuri Abele Германия yabele.blogspot.com
Дата: 18.09.18 09:38
Оценка:
Спасибо, очень помогло!
В итоге родился вот такой 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>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.