2016-09-01 12 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}" /> 

メッセージが空であるとき、それは改行を出力しますが、メッセージが空でないとき、それはこのメッセージを印刷しません、 only 16:06:34.7274 INFO
どのように希望の効果を持つ設定を修正するには?

答えて

1

あなたはWOW

+0

\)、バックスラッシュで変数DefaultLayoutにコロン(:)をエスケープする必要があります!私はこれをドキュメントで見ましたが、これは必須ではないと思いました。なぜなら、私は直接レイアウトを使用せず、参照変数を代わりに使用しているからです。 Nlogのためにあなたの印象的な仕事のためのチップと感謝のための@ジュリアンに感謝! – Kai

+0

おかげで@カイ! FYIでは、変数の設定は解析時にインライン展開されるため、直接使用と同じルールが適用されます。 – Julian

関連する問題