CNode

node如何做到日志“同步”

问答
NnewJack12发布于7 年前最后回复7 年前10 回复4503 浏览0 收藏

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

查看回复

回复 (10)

A
April-5#1·7 年前

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

G
Gitforxuyang#2·7 年前

加requestId正解

C
captainblue2013#3·7 年前

tradeId & timestamp

J
jyk0011#4·7 年前

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

J
jyk0011#5·7 年前

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

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

W
waitingsong#6·7 年前

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

A
atian25#7·7 年前

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

Z
Zhang8023Lyf#8·7 年前

你好

O
OXOYO#9·7 年前

目前用的uuid做requestID image.png

N
nzmd#10·7 年前

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

参与回复
登录后即可参与回复。登录