node如何做到日志“同步”
发布于 5 个月前 作者 newJack12 1239 次浏览 来自 问答

由于node本身异步的机制,打印日志也是异步的,而不是一个请求对应一个完整的日志过程,在请求并发的时候日志都是混乱的,请问大佬们平时都是怎么做的,希望大家可以互相讨论学习下

10 回复

同步写到指定(日志)文件。。。

乱就乱啊,通过 requestid 和 pid 过滤就好了

这是异步机制问题吗?多线程没这个问题吗?

加requestId正解

目前用的uuid做requestID image.png

不同框架下具体怎么实现呢?express、koa

没太懂,如果你的日志乱了,说明你代码本身(不含日志部分)就是混乱的。 如果你的代码没写乱,那么日志就不可能乱。 记录日志和异步同步,单线程多线程没啥关系。反倒是多线程容易乱。

试了几种写文件的方式,最后发现追加的方式可行,不会丢数据。

//追加方法 fs.appendFile("./json.txt",’\r\n’+ request.url , function(error) { if (error) console.log(“追加文件失败” + error.message); else console.log(“追加成功:” + request.url); });

回到顶部