2017-08-30 2 views
0

dans App.config Je nlog section:transformation app.config - enregistreur de règles NLog remplacer fonctionne pas

<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> 

dans App.debug.config Je veux remplacer:

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

avec:

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

mais reste à gauche nœuds intacts:

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

donc dans App.debug.config j'ai écrit:

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

mais il ne remplace rien - juste à gauche contenu de oryginal <nlog> noeud

Qu'est-ce que Je fais mal?

Répondre

1

Vous avez quelques erreurs: vous avez perdu namespaces dans le fichier de transformation et avez écrit le code XML incorrect tag que vous souhaitez échanger. Il est donc très facile à corriger:

<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>