首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用node.js将输出重定向到日志文件

使用node.js将输出重定向到日志文件
EN

Stack Overflow用户
提问于 2013-04-23 04:16:15
回答 4查看 32.3K关注 0票数 29

我在node.js中使用了一个子进程,如下所示。我不想将输出重定向到控制台,而是将输出放在运行此命令的机器上的某个日志文件中(并且应该可以同时适用于windows和mac)。

下面的代码是我正在使用的,我想将这些文件输出到日志文件中。在这里需要做哪些更改?谢谢!

我的代码:

代码语言:javascript
复制
var spawn = require('child_process').spawn,
    ls    = spawn('ls', ['-lh', '/usr']);

ls.stdout.on('data', function (data) {
  console.log('stdout: ' + data);
});

ls.stderr.on('data', function (data) {
  console.log('stderr: ' + data);
});

ls.on('close', function (code) {
  console.log('child process exited with code ' + code);
});
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-04-26 15:59:36

最好的答案在评论中,在前面的问题中也提到了: stackoverflow.com/questions/2496710/nodejs-write-to-file

具体如下:

代码语言:javascript
复制
var fs = require('fs');
fs.writeFile("/tmp/test", "Hey there!", function(err) {
    if(err) {
        console.log(err);
    } else {
        console.log("The file was saved!");
    }
}); 
票数 -7
EN

Stack Overflow用户

发布于 2013-04-23 05:17:42

下面是一个使用streams记录文件的示例。

代码语言:javascript
复制
var logStream = fs.createWriteStream('./logFile.log', {flags: 'a'});

var spawn = require('child_process').spawn,
    ls    = spawn('ls', ['-lh', '/usr']);

ls.stdout.pipe(logStream);
ls.stderr.pipe(logStream);

ls.on('close', function (code) {
  console.log('child process exited with code ' + code);
});
票数 49
EN

Stack Overflow用户

发布于 2013-11-07 21:58:51

如果您使用forever运行JS脚本,那么您可以选择将日志文件定义为处理所有console.log消息的参数。更不用说让你的nodejs应用永久存活的好处了。

或者尝试这样做:

代码语言:javascript
复制
sudo forever start myapp.js 2>&1 /home/someuser/myapp/myapp.log
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16155932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档