收听节点的ConsoleTraceListener日志
问题描述:
我写了一个样例应用程序,它将日志打印到ConsoleTraceListener
。收听节点的ConsoleTraceListener日志
根据MSDN,ConsoleTraceListener
应重定向到标准输出。我从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常量”)。
谢谢。愚蠢的错误:) – Reddy