2016-09-01 111 views
0

我希望nlog在消息爲空時輸出換行符,當消息不爲空時,我想要輸出佈局。
我嘗試下面的方法,但它不工作:Nlog - 基於消息的條件佈局

<variable name="DefaultLayout" value="${time} ${level:uppercase=true}: ${message}"/> 
<variable name="Main" value="${when:when='${message}'=='':inner=${newline}:else=${DefaultLayout}}"/> 
...... 
<target xsi:type="ColoredConsole" name="console" layout="${Main}" /> 

在這種配置中它打印新的生產線時,消息是空的,但是當消息不是空的,它不打印此消息,只有16:06:34.7274 INFO
如何修復配置以達到預期效果?

回答

1

你一定要逃逸變量DefaultLayout冒號(:)用反斜槓(\

+0

WOW!我在文檔中看到了這一點,但認爲這不是必需的,因爲我沒有使用直接佈局,而是使用了引用變量。感謝@ Julian提供的技巧,並感謝您爲Nlog提供的令人印象深刻的工作! – Kai

+0

謝謝@凱!僅供參考,分析配置時內聯變量,因此它們具有與直接用法相同的規則。 – Julian