2017-08-30 57 views
0

的App.config我有n日志部分:的app.config改造 - n日志规则记录器更换不适用

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

App.debug.config我想替换:

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

有:

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

但左靠背节点不变:

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

所以App.debug.config我已经写:

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

,但它不会取代任何东西 - 刚刚离开oryginal <nlog>节点的全部内容

什么我做错了?

回答

1

您有一些错误:您在转换文件中丢失了namespaces,并写入了您要交换的不正确的xml tag。 所以很容易修复:

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