node.js vm moduleでは、別の node.js プロセスでいくつかの JavaScript を実行できます。私が達成したいのは、vm によって実行されたスクリプトで実行されたログをキャッチできるようにすることです。
たとえば、「foobar」ログをキャッチしたい:
var vm = require('vm')
vm.runInThisContext('console.log("foobar");', 'myfile.vm');
// how can i get the "foobar" log?
前もって感謝します
編集:短いバージョンがありますが、以下の答えはうまくいきます:
function captureStdout(callback) {
var output = '', old_write = process.stdout.write
// start capture
process.stdout.write = function(str, encoding, fd) {
output += str
}
callback()
// end capture
process.stdout.write = old_write
return output
}