我将以下内容用于简单的服务器。我想知道如何为记录时间戳,方法,请求URL和http响应代码的所有请求设置访问日志。
http.HandleFunc("/foo", funcFoo)
err := http.ListenAndServe("127.0.0.1:2074", nil)
答案 0 :(得分:24)
看看这里:http://github.com/gorilla/handlers
http.Handle("/foo", funcFoo)
err := http.ListenAndServe("127.0.0.1:2074", handlers.LoggingHandler(os.Stdout, http.DefaultServeMux))
这将记录整个服务器上的任何传入连接。 os.Stdout
可以由提供io.Writer
的任何内容(即文件,HTTP流等)替换。如果您希望它是每个路由,您可以这样做:
http.Handle("/foo", handlers.LoggingHandler(os.Stdout, funcFoo))
它还可以与gorilla/mux以及与http.Handler兼容的其他路由器/框架一起使用。