我正在构建一个NodeJS
socket
服务器,并且(不仅仅)调试使用console.log
。主进程在收到套接字连接并将套接字传递给子进程时分叉子进程。然后,孩子将处理套接字和每条消息。主进程和子进程都会在执行时使用console.log ...
我想知道是否有一种方法,每当我通过在终端(SIGINT
命令)上按Ctrl + C退出进程时,我可以将整个console.log输出重定向到文件...
这样的事情:
//server.js
//this doesn't work, of course!
var file = require('fs');
process.on("SIGINT",function(){
//I tried process.stdout
file.writeFileSync("server-log.txt",process.stdout);
process.exit();
});
我想过.pipe()
主进程stdout和所有子进程将stdout处理到主进程中的变量(或其他东西)然后,当SIGINT
事件发生时,我会写出该变量&# 39; s对文件的内容,但我不知道该怎么做以及它是否会起作用...
有什么想法吗?