node如何做到日志“同步”
由于node本身异步的机制,打印日志也是异步的,而不是一个请求对应一个完整的日志过程,在请求并发的时候日志都是混乱的,请问大佬们平时都是怎么做的,希望大家可以互相讨论学习下
10 回复
同步写到指定(日志)文件。。。
乱就乱啊,通过 requestid 和 pid 过滤就好了
这是异步机制问题吗?多线程没这个问题吗?
加requestId正解
tradeId & timestamp
你好
目前用的uuid做requestID
不同框架下具体怎么实现呢?express、koa
没太懂,如果你的日志乱了,说明你代码本身(不含日志部分)就是混乱的。 如果你的代码没写乱,那么日志就不可能乱。 记录日志和异步同步,单线程多线程没啥关系。反倒是多线程容易乱。
试了几种写文件的方式,最后发现追加的方式可行,不会丢数据。
//追加方法 fs.appendFile("./json.txt",’\r\n’+ request.url , function(error) { if (error) console.log(“追加文件失败” + error.message); else console.log(“追加成功:” + request.url); });