Ich möchte Layouts in NLog verwenden, um der Lage sein, die Mindestprotokollebene unter Verwendung einer externen Variablen zu ändern:In NLog, ist es möglich, Layouts zu verwenden, um den Loglevel zu definieren?
<nlog>
<variable name="loglevel" value="Debug"/>
<targets>
<target ... />
</targets>
<rules>
<logger name="*" minlevel="${loglevel}" writeTo="LogFile" />
</rules>
</nlog>
Nach dem Start NLog, alle Protokollebenen (zB: Tracing, Debug, Info, ...) sind auf false
gesetzt, was anzeigt, dass NLog das Attribut minlevel
nicht richtig parsen konnte.
Die NLog Layout-Funktion scheint nur mit Attributen target
zu funktionieren. Was ich erreichen möchte: In meiner realen App ist Loglevel keine Konstante, sondern eine benutzerdefinierte layout renderer.
Ich habe auch versucht, value="Debug"
durch value="LogLevel.Debug"
ohne Erfolg zu ersetzen.
Der Filter funktioniert Zustand, aber nur, wenn als Konstante zB definiert: 'level> = LogLevel.Debug'. Ich konnte es nicht als Variable arbeiten lassen: 'level> = $ {loglevel}'. Auch die zu verwendende Syntax scheint etwas anders zu sein als Ihre, siehe hier: https://github.com/NLog/NLog/wiki/Conditions – tigrou