Ich versuche, 2-Logger zu erstellen (mit NLog)Generisches Logging und spezifische Protokollierung (mit NLOG), Vervielfältigung von Logging
- Erste Logger protokolliert alle das gewünschte Element in der Lösung
- Die andere einzuloggen eine Spur bestimmte Elemente (ich es tue Dinge sauber zu halten und konzentriert, und führe nur
trace
hier)
Im Folgenden ist die Konfiguration
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="logfile"
xsi:type="File"
layout="${longdate} ${level} ${threadid} ${callsite} ${message}"
fileName="${basedir}\Logs\GatewayApplicationDebugAndErrorLog.txt"
archiveNumbering="Rolling"
maxArchiveFiles="10"
archiveAboveSize="10000000"/>
<target name="J1939Trace"
xsi:type="File"
layout="${longdate} ${level} ${threadid} ${callsite} ${message}"
fileName="${basedir}\Logs\J1939Trace.txt"
archiveNumbering="Rolling"
maxArchiveFiles="10"
archiveAboveSize="10000000"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="logfile" />
<logger name="J1939Trace" maxlevel="Trace" writeTo="J1939Trace" final="true" />
</rules>
Was ich beobachte ist, dass die spezifischen Logger Artikel auch in generischem Protokollpunkt angemeldet ist, und ich will nicht, dass die Vervielfältigung
und Nutzung ist unter
private readonly Logger logger = LogManager.GetCurrentClassLogger(); // Generic Logger
private readonly Logger j1939Logger = LogManager.GetLogger("J1939Trace"); // Specific Logger.
gezeigt. Irgendwelche Ideen was mache ich falsch?
Ist die Absicht, dass das eine Protokoll Trace ist und das andere Protokoll über Trace ist? Könnten Sie den generischen Logger einfach so ändern, dass er debuggt? – Derek
@derek Das ist nicht die Absicht. Die Absicht ist, alles zu protokollieren, außer das, was in einem bestimmten Logger eingeloggt ist. –