package cmd import ( "net/http" "github.com/sirupsen/logrus" ) type ResponseWriter struct { http.ResponseWriter StatusCode int } func (w *ResponseWriter) WriteHeader(statusCode int) { w.StatusCode = statusCode w.ResponseWriter.WriteHeader(statusCode) } type Handler struct { http.Handler } func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { rw := &ResponseWriter{w, 0} h.Handler.ServeHTTP(rw, r) logrus.Println(r.RemoteAddr, r.Method, rw.StatusCode, r.URL) } func HttpServe(dir string, bind string) { handler := &Handler{http.FileServer(http.Dir(dir))} http.Handle("/", handler) logrus.Printf("[http] Listening on %s\n", bind) logrus.Fatal(http.ListenAndServe(bind, nil)) }