app.config 转换 - nlog 规则记录器替换不起作用
app.config transformation - nlog rules logger replace not works
在 App.config 我有 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>
节点的全部内容
我做错了什么?
您有一些错误:您在转换文件中丢失了 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>
在 App.config 我有 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>
节点的全部内容
我做错了什么?
您有一些错误:您在转换文件中丢失了 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>