func New(handler http.Handler, options ...Option) (h *Handler) {
	h = &Handler{
		handler: handler,
		logf:    log.Printf,
	}
	for _, option := range options {
		option(h)
	}
	return
}
func New(handler http.Handler, options ...Option) (h *Handler) {
	h = &Handler{
		handler: handler,
		logf:    log.Printf,
	}
	for _, option := range options {
		option(h)
	}
	return
}
// New creates a new Handler from the handler that is wrapped and
// protected with recover function.