2017-02-27 6 views
1
からConsoleTraceListenerログを聞く

ログを出力するサンプルアプリケーションをConsoleTraceListenerに書きました。ノード

MSDNによれば、ConsoleTraceListenerは標準出力にリダイレクトする必要があります。私はspawnノードからこのプロセスを受け取り、stdoutを聞いてみると情報を取得できません。

これを修正する方法はありますか?私は

C#のノードAにTraceListenerをストリーミングする:

をノード:

let proc = ps.spawn("sample.exe"); 
proc.stdout.on('data', (c) => { 
    console.log(c.toString()); 
}); 

proc.stderr.on('err', (c) => { 
    console.log(c.toString()); 
}); 

答えて

1

まず、あなたがConsoleTraceListenerに渡すためのパラメータの、標準出力ではなく、stderrにリダイレクト:

Trace.Listeners.Add(new ConsoleTraceListener(useErrorStream: true));// < note true here 

stdoutにリダイレクトするには、それをfalseに変更します。

Trace.Listeners.Add(new ConsoleTraceListener(useErrorStream: false)); 

次に、node.jsアプリケーションに出力が表示されます。 あなたは、標準エラー出力を参照してください。このようなあなたのNode.jsアプリケーションを変更する場合:

proc.stderr.on('data', (c) => { 
    console.log(c.toString()); 
}); 

次にあなたもstderrに書き込み元の.NETアプリケーションで出力が表示されます。

上記のことが役立たない場合は、TRACEコンパイル時定数(プロジェクトプロパティ>チェックボックス "TRACE定数の定義")を定義するかどうかを確認してください。

+0

ありがとうございます。愚かな間違い:) – Reddy