当前位置:首页 > Web开发 > 正文

《Web Development with Go》写一个简单的LoggingMiddleware

2024-03-31 Web开发

package main import ( "fmt" "log" "net/http" "time" ) func loggingHandler(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { start := time.Now() log.Printf("Started %s %s", r.Method, r.URL.Path) next.ServeHTTP(w, r) log.Printf("Completed %s in %v", r.URL.Path, time.Since(start)) }) } func index(w http.ResponseWriter, r *http.Request) { log.Println("Executing index handler") fmt.Fprintf(w, "welcome!") } func about(w http.ResponseWriter, r *http.Request) { log.Println("Executing about handler") fmt.Fprintf(w, "Go Middleware!") } func iconHandler(w http.ResponseWriter, r *http.Request) { } func main() { http.HandleFunc("/favicon.ico", iconHandler) indexHandler := http.HandlerFunc(index) aboutHandler := http.HandlerFunc(about) http.Handle("http://www.mamicode.com/", loggingHandler(indexHandler)) http.Handle("/about", loggingHandler(aboutHandler)) server := &http.Server{ Addr: ":8080", } log.Println("Listening...") server.ListenAndServe() }

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/41996.html