Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 如何在日志中识别线程或类似线程?_Go - Fatal编程技术网

Go 如何在日志中识别线程或类似线程?

Go 如何在日志中识别线程或类似线程?,go,Go,我正在用Go语言开发echo框架 我正在设计一个日志记录器,我想将线程ID的等效值记录到日志中,但我不知道一个好的方法 例如,如果使用多个访问同时执行登录处理,则在一侧成功,在一侧失败 无法通过查看失败的日志来确定 经过检查,goroutine的id在Go语言中存在,但我不应该得到它, 最初人们说goroutine在同一个线程中是不一样的 如何识别线程? 或者是否有一个包将它们放在日志中 很抱歉,如果我用错了表达方式,因为英语不是我的母语。 谢谢。GoLang中没有对应于go例程的线程id 你可

我正在用Go语言开发echo框架

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

例如,如果使用多个访问同时执行登录处理,则在一侧成功,在一侧失败 无法通过查看失败的日志来确定

经过检查,goroutine的id在Go语言中存在,但我不应该得到它, 最初人们说goroutine在同一个线程中是不一样的

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

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

GoLang中没有对应于go例程的线程id


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

我个人更喜欢go中的log4j

它非常容易使用,而且它还具有所有的功能,例如根据时间和大小进行文件轮换。此外,您还可以存储包含文件名和行号的完整错误堆栈。

另请参见