gpt4 book ai didi

go - 在 Go 中是否有静态方法来获取当前请求/上下文?

转载 作者:IT王子 更新时间:2023-10-29 01:15:01 27 4
gpt4 key购买 nike

我希望我的日志记录方法输出某种请求 ID。为此,我需要将请求对象(或某些派生对象)传递给日志记录函数。

当从请求处理程序中记录时这一切都很好,但是当从库样式方法中使用时会出现问题,因为我不希望那些人知道任何正在进行的 http 请求。
此外,控制台应用程序将来可能会使用这些相同的库方法,并且请求 ID 将被某种工作线程 ID 替换。

使用上下文可以解决问题,但这意味着我必须向我的所有方法添加上下文参数,这有点烦人。

所以,基本上,我需要的是在方法和 goroutine 调用之间传递的某种静态存储。

我不确定 Go 中是否有类似的东西,所以也许我的方法完全偏离了基础,在那种情况下,我很乐意听到解决上述问题的更好方法。

谢谢,

最佳答案

尝试另一个日志库。例如,在 log15 ( https://github.com/inconshreveable/log15) 中,一个 Logger 作为嵌入式键/值上下文。

logger := log.New("request_id", "8379870928")

您可以将记录器对象传递给任何需要记录的人。稍后:

logger.Warn("blabalbla")

... 将嵌入您输入的 request_id。

关于go - 在 Go 中是否有静态方法来获取当前请求/上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43319129/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com