C# 从节点侦听ConsoleTraceListener日志
我编写了一个示例应用程序,它将日志打印到C# 从节点侦听ConsoleTraceListener日志,c#,node.js,stdin,spawn,tracelistener,C#,Node.js,Stdin,Spawn,Tracelistener,我编写了一个示例应用程序,它将日志打印到ConsoleTraceListener 根据,ConsoleTraceListener应重定向到标准输出。我spawn从节点生成此进程,并尝试侦听stdout,但它无法获取信息 你知道怎么解决这个问题吗?我想将TraceListener流式传输到节点 C#: 节点: 首先,由于传递给ConsoleTraceListener的参数,您重定向到stderr,而不是stdout: Trace.Listeners.Add(new ConsoleTraceList
ConsoleTraceListener
根据,ConsoleTraceListener应重定向到标准输出。我spawn
从节点生成此进程,并尝试侦听stdout
,但它无法获取信息
你知道怎么解决这个问题吗?我想将TraceListener
流式传输到节点
C#:
节点:
首先,由于传递给
ConsoleTraceListener
的参数,您重定向到stderr,而不是stdout:
Trace.Listeners.Add(new ConsoleTraceListener(useErrorStream: true));// < note true here
然后,您将在node.js应用程序中看到输出。
如果要查看stderr,请按如下方式更改node.js应用程序:
proc.stderr.on('data', (c) => {
console.log(c.toString());
});
然后,您将看到输出,即使您的原始.NET应用程序写入了stderr
如果上述内容没有帮助-请检查是否定义跟踪编译时常量(项目属性>复选框“定义跟踪常量”)
Trace.Listeners.Add(new ConsoleTraceListener(useErrorStream: true));// < note true here
Trace.Listeners.Add(new ConsoleTraceListener(useErrorStream: false));
proc.stderr.on('data', (c) => {
console.log(c.toString());
});