async function Get_alldata ( ) {
var fs = require('fs')
var util = require('util')
var logPath = 'upgrade.log'
var logFile = fs.createWriteStream(logPath, { flags: 'a' })
console.log = function() {
logFile.write(util.format.apply(null, arguments) + '\n') // 输出 01、02、03 到文本文件;
process.stdout.write(util.format.apply(null, arguments) + '\n')
}
console.log( ' 01' );
console.log( ' 02' );
console.log( ' 03' );
****** other code ******
return await Get_alldata() ;
}
上面的代码,只能在 注屏蔽释掉 return await Get_alldata() ; 语句之后,在程序执行完之后,将 01、02、03 一次性的写入到到文本文件?
如果 不注屏蔽释掉 return await Get_alldata() ; 那么 01、02、03 根本就没有写入文本文件;
请问怎么实现 在直接使用 console.log( ) 函数的情况下,实时的将 console.log 输出的 01、02、03 写入到到文本文件?
我实现了 await console.log( ) 的办法,可是太复杂了,使用也不方便;
所以想请教一下这个社区的网友,有没有更好的办法?
如果有可以使用的插件,希望能够帮忙给个插件配置文件,谢谢!
附上两个参考文档:
Node中console.log的同步实现:https://blog.csdn.net/li42052...
[Node.js系统模块系列一] console模块解读:https://juejin.im/post/5bf2b3...
首先是,
然而你理一下代码, 如果你加上一个:
那么你的代码将会一直无限递归, 我自己试了一下( macos环境 ), 是会瞬间写入大量的
01 02 03
这种log, 然后最后报错:我也不太清楚你为什么会没有log输出到文件, 但是你这种写法 或者是测试方法 肯定是错的.
如果说你要输出日志到文件, 网上现成的轮子肯定是有的, 而且很多, 没必要自己造....况且还那么简陋. 像
log4js
,winston
, 都是很不错的.我这边可以简单的给你一个
log4js
的配置,具体的含义应该都能猜得到, 详细的配置看文档吧. 或者 搜索
log4js 配置