2017-10-12 101 views
0

我正在捕獲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); 
+0

您可以寫信給'process.stder'或'process.stdout',它會在控制檯 – BrunoLM

+0

好的輸出。示例代碼? – Airerr

+0

正在使用命令行嗎?重定向到控制檯和logfile.txt。 – Mark

回答

0

請檢查this答案。

所以你幾乎可以這樣做。

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');

相關問題