14
我正在使用下面的簡單服務器。我想知道如何爲記錄時間戳,方法,請求url和http響應代碼的所有請求設置訪問日誌。如何爲http.ListenAndServe設置訪問/錯誤日誌
http.HandleFunc("/foo", funcFoo)
err := http.ListenAndServe("127.0.0.1:2074", nil)
我正在使用下面的簡單服務器。我想知道如何爲記錄時間戳,方法,請求url和http響應代碼的所有請求設置訪問日誌。如何爲http.ListenAndServe設置訪問/錯誤日誌
http.HandleFunc("/foo", funcFoo)
err := http.ListenAndServe("127.0.0.1:2074", nil)
到這裏看看: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兼容的框架工作。
對於簡單的http.ListenAndServe類型實現,您可以使用包裝函數,就像這裏一樣https://medium.com/@matryer/the-http-handlerfunc-wrapper-technique-in-golang-c60bf76e6124 – kadalamittai