猿问

节点:登录文件而不是控制台

我可以配置console.log成将日志写在文件上而不是在控制台上打印吗?



慕婉清6462132
浏览 538回答 3
3回答

守着一只汪

您也可以只重载默认的console.log函数:var fs = require('fs');var util = require('util');var log_file = fs.createWriteStream(__dirname + '/debug.log', {flags : 'w'});var log_stdout = process.stdout;console.log = function(d) { //  log_file.write(util.format(d) + '\n');  log_stdout.write(util.format(d) + '\n');};上面的示例将日志记录到debug.log和stdout。

弑天下

我经常对console.log()和console.error()使用很多参数,所以我的解决方案是:var fs = require('fs');var util = require('util');var logFile = fs.createWriteStream('log.txt', { flags: 'a' });  // Or 'w' to truncate the file every time the process starts.var logStdout = process.stdout;console.log = function () {  logFile.write(util.format.apply(null, arguments) + '\n');  logStdout.write(util.format.apply(null, arguments) + '\n');}console.error = console.log;
随时随地看视频慕课网APP

相关分类

Node.js
我要回答