package main import ( "flag" "fmt" "log" "net/http" ) var port = flag.Int("port", 8000, "port from which to serve") func logger(h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { log.Printf("%s: %s\n", r.RemoteAddr, r.URL) h.ServeHTTP(w, r) }) } func main() { flag.Parse() addr := fmt.Sprintf(":%d", *port) fh := http.FileServer(http.Dir("./")) http.ListenAndServe(":8080", logger(fh)) if err := http.ListenAndServe(addr, logger(fh)); err != nil { log.Fatal(err) } }