如何识别日志中的线程或类似内容?

时间:2017-01-30 10:05:21

标签: go

我正在开发Go语言,echo框架。

我正在设计一个记录器,我想将相应的线程ID记录到日志中,但我不知道一个好的方法。

例如,如果多次访问同时执行登录处理,则一方成功,另一方面失败 通过查看失败的日志无法确定。

经过检查,在Go语言中goroutine的id存在,但我不应该得到它, 最初有人说goroutine在同一个帖子中并不相同。

如何识别线程? 或者是否有一个包将它们放在日志中?

如果我使用错误的表达方式,我很抱歉,因为英语不是我的母语。 感谢。

2 个答案:

答案 0 :(得分:2)

对于go例程,GoLang中没有等效的线程ID。

你可以做的是创建一个context并附加一个唯一的id(最好是请求id)。让所有的函数都接受一个上下文。让记录器库获取上下文并打印唯一ID。通过以这种方式使用上下文,您甚至可以共享日志信息

答案 1 :(得分:0)

我个人更喜欢go Log4J in Go中的log4j。

它非常易于使用,并且它具有基于时间和大小的文件轮换等所有功能。此外,您可以存储包含文件名和行号的完整错误堆栈。