2016-08-06 6 views
4

は現在、私はNLog.Configに以下の構成を持っている:私は達成するために何を望むかNLog.Configの冗長性を避けるには?

<target name="upd" xsi:type="FilteringWrapper" condition="contains('${message}', 'UPD U40') 
     or contains('${message}', 'UPD CAX') 
     or contains('${message}', 'UPD CAY') 
     or contains('${message}', 'UPD CMVQA') 
     or contains('${message}', 'UPD U68') 
     or contains('${message}', 'UPD CBY') 
     or contains('${message}', 'UPD CBX') 
     or contains('${message}', 'UPD CUX') 
     or contains('${message}', 'UPD CELL') 
     or contains('${message}', 'UPD BPS') 
     "> 
    <target xsi:type="File" fileName="${basedir}/logs/UPD.log" 
      layout="${longdate} - ${message}" /> 
</target> 

<target name="other" xsi:type="FilteringWrapper" condition="not contains('${message}', 'UPD U40') 
     and not contains('${message}', 'UPD CAX') 
     and not contains('${message}', 'UPD CAY') 
     and not contains('${message}', 'UPD CMVQA') 
     and not contains('${message}', 'UPD U68') 
     and not contains('${message}', 'UPD CBY') 
     and not contains('${message}', 'UPD CBX') 
     and not contains('${message}', 'UPD CUX') 
     and not contains('${message}', 'UPD CELL') 
     and not contains('${message}', 'UPD BPS') 
     "> 
    <target xsi:type="File" fileName="${basedir}/logs/${shortdate}.log" 
      layout="${longdate} - ${message}" /> 
</target> 

... 

<logger name="*" minlevel="Debug" writeTo="upd,other"/> 

${shortdate}.logUPD.logに収集することができるためにすべてのUPD CAXなどのパターン、残りを持つことです。私はそれを達成しました。しかし、私は両方の場所にパターンを追加する必要があるので、ここに大きな冗長性があると思います。

ターゲット/ルールを単純化して同じ結果を得るにはどうすればよいですか?

答えて

1

簡略化する最も簡単な方法は、おそらく変数を使用することです。あなたはあなたの条件を変数に入れ、その条件が真であるかどうかを入れ替えることができます。ファイルパスとレイアウトのような他の部分は、それらを1か所で構成したい場合は変数にすることもできます。簡単な例を次に示します。

関連する問題