gpt4 book ai didi

debugging - 有什么方法可以获取 'http: response.WriteHeader on hijacked connection' 错误的堆栈跟踪?

转载 作者:数据小太阳 更新时间:2023-10-29 03:04:54 32 4
gpt4 key购买 nike

我们的 Web 应用程序正在将大量“http: response.WriteHeader on hijacked connection”消息记录到 stderr。

有什么方法可以让 http 库输出堆栈跟踪或其他调试信息以及此消息(或将其升级为错误),以便追踪位置在我们的应用程序中会发生这种情况吗?

最佳答案

由于永远不会返回错误,并直接写入 http.Server.ErrorLog,这是您唯一可以拦截它的地方。

您可以在调试器中运行它并在该点中断,但如果在生产环境中运行,这可能没有用。

您可以使用 io.Writer 创建一个新的 *log.Logger,当它遇到特定消息时,它会将堆栈跟踪添加到输出中。

type stackWriter struct {
w io.Writer
}
func (s stackWriter) Write(d []byte) (int, error) {
if bytes.Contains(d, []byte("WriteHeader on hijacked connection")) {
s.w.Write(debug.Stack())
}
return s.w.Write(d)
}

当然,另一种选择是修改 net/http/server.go 以打印此时的堆栈。

关于debugging - 有什么方法可以获取 'http: response.WriteHeader on hijacked connection' 错误的堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43547565/

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