如何用Golang日志追踪请求
导读:在Golang中,我们可以使用标准库"log"或者第三方库(如logrus、zap等)来实现日志追踪请求。下面是一个简单的示例,使用标准库"log"来实现日志追踪请求。 首先,我们需要创建一个简单的HTTP服务器: package main...
在Golang中,我们可以使用标准库"log"或者第三方库(如logrus、zap等)来实现日志追踪请求。下面是一个简单的示例,使用标准库"log"来实现日志追踪请求。
首先,我们需要创建一个简单的HTTP服务器:
package main
import (
"fmt"
"log"
"net/http"
"time"
)
func main() {
http.HandleFunc("/", requestHandler)
log.Println("Server started on port 8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}
func requestHandler(w http.ResponseWriter, r *http.Request) {
start := time.Now()
log.Printf("Request received: %s %s", r.Method, r.URL.Path)
// 模拟处理请求
time.Sleep(100 * time.Millisecond)
duration := time.Since(start)
log.Printf("Request processed in %v", duration)
fmt.Fprintf(w, "Hello, World!")
}
在这个示例中,我们创建了一个简单的HTTP服务器,监听8080端口。当收到请求时,我们记录请求的方法和URL路径,然后模拟处理请求(这里使用time.Sleep模拟处理时间)。处理完成后,我们记录处理所花费的时间。
运行这个程序,然后访问http://localhost:8080,你会在控制台看到类似如下的日志输出:
2022/06/01 12:34:56 Server started on port 8080
2022/06/01 12:35:01 Request received: GET /
2022/06/01 12:35:01 Request processed in 100.123ms
这只是一个简单的示例,实际项目中可能需要更详细的日志信息,例如请求ID、客户端IP等。这时可以考虑使用第三方日志库,如logrus或zap,它们提供了更多的功能和更好的性能。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何用Golang日志追踪请求
本文地址: https://pptw.com/jishu/738897.html
