I'm currently using spawnSync and stdio:inherit to get the logs printed on my console. However I'm looking for custom logging to a separate file, in case if anything fails during the spawn.
I'm looking to create a wrapper around
spawn
so that it has following properties :
For instance :
const result = spawnSync('ls', [ '-l', '-a' ], { stdio: 'inherit'}); // will print as it's processing
console.log(result.stdout); // will print null
const result = spawnSync('ls', [ '-l', '-a' ], { encoding: 'utf-8' }); // won't print anything
console.log(result.stdout); // will print ls results only on completion
I need result
such that it will print while it's processing and write to a file at the same time
Also I'm looking for some strategy or solution from node.js side apart from shell scripting
I guess we can't make all three possible because of the limitation of node.js
If we are trying to use stdio:'inherit' , we can either redirect output to parent stdout stream or file using
fs.openSync()
Because of the limitation, we can't use custom streams too.