我有nlog部分:
<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>
但它不会取代任何东西 - 只留下原始<nlog>
节点的整个内容
我做错了什么?
答案 0 :(得分: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>