输出到控制台和日志文件
Output to console and log file
我正在捕获 console.log
数据并将其保存到日志文件中,但我还想在控制台中显示数据。我怎样才能做到这一点?我宁愿不安装一个包就这样做。
这就是我用来捕获 console.log
数据的方法:
var stdo = fs.createWriteStream('log.txt', {'flags': 'a'});
var write = function(write) {
return function(string, encoding, fd) {
stdo.write(string);
};
};
process.stdout.write = write(process.stdout.write);
请查看 答案。
你几乎可以这样做。
const fs = require('fs');
let outputFileStream = fs.createWriteStream('log.txt', {'flags': 'a'});
const originalWrite = process.stdout.write;
process.stdout.write = function() {
originalWrite.apply(process.stdout, arguments);
outputFileStream.write.apply(outputFileStream, arguments);
};
//These 3 lines go both to the file and to the console.
console.log('What is love');
console.log('Baby don\'t hurt me');
console.log('Don\'t hurt me');
//Won't get to the file. As it's a different stream.
console.error('No more');
我正在捕获 console.log
数据并将其保存到日志文件中,但我还想在控制台中显示数据。我怎样才能做到这一点?我宁愿不安装一个包就这样做。
这就是我用来捕获 console.log
数据的方法:
var stdo = fs.createWriteStream('log.txt', {'flags': 'a'});
var write = function(write) {
return function(string, encoding, fd) {
stdo.write(string);
};
};
process.stdout.write = write(process.stdout.write);
请查看
你几乎可以这样做。
const fs = require('fs');
let outputFileStream = fs.createWriteStream('log.txt', {'flags': 'a'});
const originalWrite = process.stdout.write;
process.stdout.write = function() {
originalWrite.apply(process.stdout, arguments);
outputFileStream.write.apply(outputFileStream, arguments);
};
//These 3 lines go both to the file and to the console.
console.log('What is love');
console.log('Baby don\'t hurt me');
console.log('Don\'t hurt me');
//Won't get to the file. As it's a different stream.
console.error('No more');