Go 如何在日志中识别线程或类似线程?
我正在用Go语言开发echo框架 我正在设计一个日志记录器,我想将线程ID的等效值记录到日志中,但我不知道一个好的方法 例如,如果使用多个访问同时执行登录处理,则在一侧成功,在一侧失败 无法通过查看失败的日志来确定 经过检查,goroutine的id在Go语言中存在,但我不应该得到它, 最初人们说goroutine在同一个线程中是不一样的 如何识别线程? 或者是否有一个包将它们放在日志中 很抱歉,如果我用错了表达方式,因为英语不是我的母语。Go 如何在日志中识别线程或类似线程?,go,Go,我正在用Go语言开发echo框架 我正在设计一个日志记录器,我想将线程ID的等效值记录到日志中,但我不知道一个好的方法 例如,如果使用多个访问同时执行登录处理,则在一侧成功,在一侧失败 无法通过查看失败的日志来确定 经过检查,goroutine的id在Go语言中存在,但我不应该得到它, 最初人们说goroutine在同一个线程中是不一样的 如何识别线程? 或者是否有一个包将它们放在日志中 很抱歉,如果我用错了表达方式,因为英语不是我的母语。 谢谢。GoLang中没有对应于go例程的线程id 你可
谢谢。GoLang中没有对应于go例程的线程id
你可以做的是创建一个上下文并附加一个唯一的id(最好是请求id)。让所有函数也接受一个上下文。让logger库获取上下文并打印唯一id。通过以这种方式使用上下文,您甚至可以共享日志的信息我个人更喜欢go中的log4j 它非常容易使用,而且它还具有所有的功能,例如根据时间和大小进行文件轮换。此外,您还可以存储包含文件名和行号的完整错误堆栈。另请参见