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
どのように希望の効果を持つ設定を修正するには?
(
\
)、バックスラッシュで変数DefaultLayout
にコロン(:
)をエスケープする必要があります!私はこれをドキュメントで見ましたが、これは必須ではないと思いました。なぜなら、私は直接レイアウトを使用せず、参照変数を代わりに使用しているからです。 Nlogのためにあなたの印象的な仕事のためのチップと感謝のための@ジュリアンに感謝! – Kaiおかげで@カイ! FYIでは、変数の設定は解析時にインライン展開されるため、直接使用と同じルールが適用されます。 – Julian