service/service.go
func New(h http.Handler, onPanic recovery.PanicHandler) Service {
	l := logging.Wrap(
		recovery.Wrap(
			debug.Wrap(
				metrics.Wrap(
					h,
				),
			),
			onPanic,
		),
		os.Stdout,
	)
	l.Start()
	return Service{h: l}
}
func New(h http.Handler, onPanic recovery.PanicHandler) Service {
	l := logging.Wrap(
		recovery.Wrap(
			debug.Wrap(
				metrics.Wrap(
					h,
				),
			),
			onPanic,
		),
		os.Stdout,
	)
	l.Start()
	return Service{h: l}
}
// New returns a new service-ready handler given an application handler.
//
// This stack application-level metrics, debug endpoints, panic recovery, and
// request logging, in that order.