2017-10-12 8 views
0

Ich bin console.log Daten erfassen und speichern Sie es in eine Protokolldatei, aber ich möchte auch die Daten in der Konsole anzeigen. Wie kann ich das machen? Ich würde lieber ein Paket nicht installieren, nur das tun. DieseAusgabe auf Konsole und Protokolldatei

ist, was ich bin mit dem console.log Daten zu erfassen:

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

Sie schreiben können 'process.stder' oder' process.stdout' und es wird auf der Konsole ausgegeben – BrunoLM

+0

Ok. Beispielcode? – Airerr

+0

Verwendet die Befehlszeile für Sie in Ordnung? Umleiten zu Konsole und logfile.txt. – Mark

Antwort

0

Bitte beachten Sie auch this Antwort.

So ziemlich kann man es so machen.

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

Verwandte Themen