Golang Go语言中请问自带的server怎么写请求日志
Golang Go语言中请问自带的server怎么写请求日志
就像 nginx 那样,自动的写 access 日志
我们有个项目是用 go 自带的 server,这个 server ’能配置他写类似的日志吗
自己写个 handle 里面先写日志,然后再掉你的处理函数就可以了撒
更多关于Golang Go语言中请问自带的server怎么写请求日志的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
你需要一个日志库,看看 uber zap,把请求用日志库记录下来。
加个日志的 middleware 就可以了,类似下面这样:
func Handler(h http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
glog.Info(“xxxxxx”)
h.ServeHTTP(w, req)
})
}
这排版绝了。
请不要上班的时候点击代码中自动联想出来的链接,会很尴尬!!!
我擦,老哥怎么会这样,怎么会这么巧合,你是故意的吧
nb 啊老哥
哈哈哈哈哈大概率是做域名停放,然后就这样了哈哈哈哈哈哈哈哈。
v2 很过分啊,刚才我已经被同事 diss 了。
start:= time.Now()
log.Printf(
“%s\t%s\t%q\t%s”,
r.RemoteAddr // 客户端 IP 和端口
r.Method, // 请求方法
r.RequestURI, // 请求 URI 路径
r.Header, // 请求头
time.Since(start), // 响应时间
)
卧槽,牛逼牛逼
666
好奇心害死猫
#3。。。🐂🍺
#5 哈哈哈哈
上面的老哥是自动 url 攻击么。恐怖,吓得瑟瑟发抖
…秀的头疼
#3 老哥稳
这波稳~~
牛逼。。。随手一打就是。。。。。
赶紧注册 glog.dbug
赶紧注册 glog.debug
牛皮
楼主你违章驾驶,快停车。
还有啥地址会被自动联想呢?
我猜 xxx.com
在Golang(又称Go语言)中,可以使用标准库中的net/http
包来创建HTTP服务器,并记录请求日志。以下是一个简单的示例,展示了如何实现这一点:
-
创建HTTP服务器:使用
http.HandleFunc
来注册路由和处理函数。 -
记录请求日志:在中间件中记录每个请求的详细信息,如方法、URL、状态码和响应时间等。
示例代码如下:
package main
import (
"fmt"
"log"
"net/http"
"time"
)
// 中间件函数,用于记录日志
func loggingMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
start := time.Now()
next.ServeHTTP(w, r)
log.Printf("%s %s %v", r.Method, r.URL.Path, time.Since(start))
})
}
func helloHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello, World!")
}
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/", helloHandler)
loggedMux := loggingMiddleware(mux)
log.Fatal(http.ListenAndServe(":8080", loggedMux))
}
在这个示例中,loggingMiddleware
函数是一个中间件,它记录了每个请求的开始时间,并在请求处理完毕后计算并打印出请求的持续时间。这样,你就可以在日志中看到每个请求的详细信息了。记得在实际项目中,可能需要将日志输出到文件或其他日志管理系统,而不是直接输出到标准输出。