多个布局渲染器之间的可选空间?
Optional spaces between multiple layout renderers?
我想我一定遗漏了一些非常明显的东西,但是疯狂的文档阅读和谷歌搜索却让我失望了。我有以下文件名布局:
<target name="asyncLogFile" xsi:type="AsyncWrapper" queueLimit="5000" overflowAction="Discard" >
<target name="mainLogFile" xsi:type="File" fileName="logs/${mdlc:item=GameServer:whenEmpty=Main} ${mdlc:item=Controller}.log"
layout="${longdate} ${level:uppercase=true} | ${logger} | ${message} ${exception:format=toString,Data:maxInnerExceptionLevel=3}" />
</target>
MDLC 项目都可以为空,在 GameServer
的游戏中它被替换为“Main”而 Controller
无关紧要(如果 GameServer
是null 那么 Controller
将为 null)。
然而,这意味着如果 GameServer
为空,我最终会得到
Main .log
因为 space 我在两个 mdlc 条目之间。我怎样才能使 space 作为 GameServer
mldc 条目的一部分可选!?我看过 :pad
在 之后添加 space 但这似乎不起作用。我试过连接 mdlc
,但这不起作用。
我原以为您可以添加一些简单的东西作为环境 属性,例如 :suffix
,但不存在这样的东西。
同样,我认为我一定遗漏了一些基本的东西,但它让我望而却步。
丑陋但这个有效
<target name="mainLogFile" xsi:type="File" fileName="logs/${when:when=length('${mdlc:item=GameServer}') > 0:inner=${mdlc:item=GameServer} ${mdlc:item=Controller}:else=Main}.log"
同样丑陋,但由于分配较少而更快:
<variable name="GameServerLogFile" value="${when:when='${mdlc:item=GameServer}'=='':inner=Main:else=${mdlc:item=GameServer} ${mdlc:item=Controller}}" />
<targets>
<target name="mainLogFile" xsi:type="File" fileName="logs/${GameServerLogFile}.log" />
</targets>
最好与空字符串 ''
进行比较,而不是调用 length()
方法。
我想我一定遗漏了一些非常明显的东西,但是疯狂的文档阅读和谷歌搜索却让我失望了。我有以下文件名布局:
<target name="asyncLogFile" xsi:type="AsyncWrapper" queueLimit="5000" overflowAction="Discard" >
<target name="mainLogFile" xsi:type="File" fileName="logs/${mdlc:item=GameServer:whenEmpty=Main} ${mdlc:item=Controller}.log"
layout="${longdate} ${level:uppercase=true} | ${logger} | ${message} ${exception:format=toString,Data:maxInnerExceptionLevel=3}" />
</target>
MDLC 项目都可以为空,在 GameServer
的游戏中它被替换为“Main”而 Controller
无关紧要(如果 GameServer
是null 那么 Controller
将为 null)。
然而,这意味着如果 GameServer
为空,我最终会得到
Main .log
因为 space 我在两个 mdlc 条目之间。我怎样才能使 space 作为 GameServer
mldc 条目的一部分可选!?我看过 :pad
在 之后添加 space 但这似乎不起作用。我试过连接 mdlc
,但这不起作用。
我原以为您可以添加一些简单的东西作为环境 属性,例如 :suffix
,但不存在这样的东西。
同样,我认为我一定遗漏了一些基本的东西,但它让我望而却步。
丑陋但这个有效
<target name="mainLogFile" xsi:type="File" fileName="logs/${when:when=length('${mdlc:item=GameServer}') > 0:inner=${mdlc:item=GameServer} ${mdlc:item=Controller}:else=Main}.log"
同样丑陋,但由于分配较少而更快:
<variable name="GameServerLogFile" value="${when:when='${mdlc:item=GameServer}'=='':inner=Main:else=${mdlc:item=GameServer} ${mdlc:item=Controller}}" />
<targets>
<target name="mainLogFile" xsi:type="File" fileName="logs/${GameServerLogFile}.log" />
</targets>
最好与空字符串 ''
进行比较,而不是调用 length()
方法。