2017-02-27 86 views
1

我寫了一個樣例應用程序,它將日誌打印到ConsoleTraceListener收聽節點的ConsoleTraceListener日誌

根據MSDNConsoleTraceListener應重定向到標準輸出。我從spawn這個過程中,從節點並試圖收聽stdout,它無法獲取信息。

任何想法如何解決這個問題?我要流TraceListener節點

C#:

節點:

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

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()); 
}); 

然後你會看到輸出,即使與寫至標準錯誤原來的.NET應用程序。

如果以上內容無效 - 請檢查您是否定義了TRACE編譯時常量(項目屬性>複選框「定義TRACE常量」)。

+0

謝謝。愚蠢的錯誤:) – Reddy