2017-06-29 3 views
1

ロギングの複製私は(NLogを使用して)2つのロガーを作成しようとしています一般的なロギングおよび特定のロギング、

  1. まずロガーは、他のソリューション
  2. にログインするすべての希望の項目を記録します1以下は

(私はきれいなものを維持し、焦点を当てた、とここでしかtraceを実行するためにそれを行う)特定の項目をトレースした構成

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<targets> 
    <target name="logfile" 
      xsi:type="File" 
      layout="${longdate} ${level} ${threadid} ${callsite} ${message}" 
      fileName="${basedir}\Logs\GatewayApplicationDebugAndErrorLog.txt" 
      archiveNumbering="Rolling" 
      maxArchiveFiles="10" 
      archiveAboveSize="10000000"/>  
    <target name="J1939Trace" 
      xsi:type="File" 
      layout="${longdate} ${level} ${threadid} ${callsite} ${message}" 
      fileName="${basedir}\Logs\J1939Trace.txt" 
      archiveNumbering="Rolling" 
      maxArchiveFiles="10" 
      archiveAboveSize="10000000"/> 
</targets> 
<rules> 
    <logger name="*" minlevel="Trace" writeTo="logfile" /> 
    <logger name="J1939Trace" maxlevel="Trace" writeTo="J1939Trace" final="true" /> 
</rules> 
です

と使用方法は、私が観察し何

private readonly Logger logger = LogManager.GetCurrentClassLogger(); // Generic Logger 
private readonly Logger j1939Logger = LogManager.GetLogger("J1939Trace"); // Specific Logger. 

の下に表示されている特定のロガーアイテムはまた、一般的なログ項目に記録され、私はその重複を望んでいないということです。私は間違って何をしていますか?

+0

一方のログがトレースで、他方のログがトレースよりも上にあるという意図はありますか?ジェネリックロガーをデバッグするように変更できますか? – Derek

+0

@derekそれは意図ではありません。特定のロガーに記録されているものを除くすべてのものを記録する意図ID。 –

答えて

1

これは機能しますか?

から

:最終=「true」を追加NLog: How to exclude specific loggers from a specific rule?

には複数のルールが「SpammyLogger」によって生成イベントに対して実行されないことを意味し、それは指定されたレベルにのみ適用(https://github.com/nlog/nlog/wiki/Configuration-file#rules参照)

回答内のすべてのコメントを必ず確認してください。

+1

この作品は、順序が重要です!私はそれを見ませんでした。 –

関連する問題