收听节点的ConsoleTraceListener日志

问题描述:

我写了一个样例应用程序,它将日志打印到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()); 
}); 

首先,您重定向到标准错误,而不是标准输出,因为参数传递给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