2017-08-30 2 views
0

in App.config Ich habe nlog Abschnitt:app.config Transformation - nlog Regeln Logger nicht ersetzen funktioniert

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

    <variable name="logDirectory" value="C:\AppsLog" /> 

    <targets> 
     <target name="LogDebugTarget" ... /> 
    </targets> 

    <rules> 
     <logger name="LogDebug" minlevel="Debug" writeTo="LogDebugTarget" /> 
     <logger name="LogInfo" minlevel="Info" writeTo="LogInfoTarget" /> 
     <logger name="LogError" minlevel="Error" writeTo="LogErrorTarget,LogErrorTargetEmail" /> 
    </rules> 

    </nlog> 

in App.debug.config Ich möchte ersetzen:

<logger name="LogError" minlevel="Error" writeTo="LogErrorTarget,LogErrorTargetEmail" /> 

mit:

<logger name="LogError" minlevel="Error" writeTo="LogErrorTarget" /> 

aber links Rest unangetastet Knoten:

<logger name="LogDebug" minlevel="Debug" writeTo="LogDebugTarget" /> 
    <logger name="LogInfo" minlevel="Info" writeTo="LogInfoTarget" /> 

so in App.debug.config Ich habe geschrieben:

<nlog> 
    <rules> 
     <add xdt:Transform="Replace" xdt:Locator="Match(name)" name="LogError" minlevel="Error" writeTo="LogErrorTarget" /> 
    </rules> 
    </nlog> 

aber nicht alles ersetzen - nur ganzen Inhalt von oryginal <nlog> Knoten links

Was Ich mache falsch?

Antwort

1

Sie haben ein paar Fehler: Sie verloren namespaces in der Transformationsdatei und schrieben falsche xml tag, die Sie tauschen möchten. es ist also sehr einfach zu beheben:

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <rules> 
    <logger xdt:Transform="Replace" xdt:Locator="Match(name)" name="LogError" minlevel="Error" writeTo="LogErrorTarget" /> 
    </rules> 
</nlog> 
Verwandte Themen