logmania/lib/http.go

36 lines
610 B
Go

package lib
import (
"net/http"
"github.com/genofire/logmania/log"
)
type HTTPServer struct {
srv *http.Server
ErrorNoPanic bool
Addr string
Handler http.Handler
}
func (hs *HTTPServer) Start() {
hs.srv = &http.Server{
Addr: hs.Addr,
Handler: hs.Handler,
}
go func() {
log.Debug("startup of http listener")
if err := hs.srv.ListenAndServe(); err != nil {
if hs.ErrorNoPanic {
log.Debug("httpserver shutdown without panic")
return
}
log.Panic(err)
}
}()
}
func (hs *HTTPServer) Close() {
log.Debug("startup of http listener")
hs.srv.Close()
}