试图通过管道将forked node.js进程的stdio传回集群

试图通过管道将forked node.js进程的stdio传回集群,node.js,Node.js,我想从集群中启动几个worker,并让每个worker将其输出返回到启动集群的引导脚本。此外,引导脚本正在将stdout管道传输到writeStream,而Bunyan也正在写入该writeStream 这种方法是可行的,但是我的子进程仍然记录到标准输出,而不是文件 ... var errorPipe = fs.createWriteStream(logPath, {flags: 'a'}); var log = bunyan.createLogger({ name: 'webd',

我想从集群中启动几个worker,并让每个worker将其输出返回到启动集群的引导脚本。此外,引导脚本正在将stdout管道传输到writeStream,而Bunyan也正在写入该writeStream

这种方法是可行的,但是我的子进程仍然记录到标准输出,而不是文件

...

var errorPipe = fs.createWriteStream(logPath, {flags: 'a'});

var log = bunyan.createLogger({
  name: 'webd',
  streams: [
    {
      level: 'info',
      stream:  errorPipe // log INFO and above to stdout
    },
    {
      level: 'error',
      stream: errorPipe // log ERROR and above to stdout
    }
  ]
});

process.__defineGetter__("stdout", function(){
  return errorPipe;
});
process.__defineGetter__("stderr", function(){
  return errorPipe;
});

// Defines what each worker needs to run
cluster.setupMaster({ exec: './index.js'}); //process.env.NODE_DIR + index

// Forks off the workers unless the server is stopping
function forkNewWorkers(callback) {
  if (!stopping) {
    for (var i = numWorkers(); i < workerCount; i++) {
      cluster.fork('prg', [], {silent: true, stdio: [null, process.stdout, process.stderr]});
    }
  }
  return callback;
}

...
。。。
var errorPipe=fs.createWriteStream(日志路径,{flags:'a'});
var log=bunyan.createLogger({
名称:“webd”,
溪流:[
{
级别:“信息”,
流:errorPipe//log INFO及以上至标准输出
},
{
级别:“错误”,
stream:errorPipe//log ERROR及以上到标准输出
}
]
});
过程。u_定义设置(“标准输出”,函数(){
回流管;
});
过程。_________________{
回流管;
});
//定义每个工作人员需要运行的内容
setupMaster({exec:'./index.js'})//process.env.NODE_DIR+索引
//除非服务器停止,否则会解雇工人
函数forkNewWorkers(回调){
如果(!停止){
for(var i=numWorkers();i
你知道为什么我的新标准不适用于上述内容吗? 谢谢