30

node.jsで次のように使用している子プロセスがあります。出力をコンソールにリダイレクトする代わりに、これが実行されているマシンのどこかにあるログ ファイルに出力したいと思います (Windows と Mac の両方で動作するはずです)。

以下のコードは私が使用しているもので、ファイルをログ ファイルに出力したいと考えています。ここでそれを行うために必要な変更は何ですか? ありがとう!

私のコード:

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);
});
4

5 に答える 5

49

ストリームを使用してファイルにログを記録する例を次に示します。

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);
});
于 2013-04-22T21:17:41.843 に答える