code: func NewLogged(req *http.Request, w *http.ResponseWriter) *respLogger {
  	if _, ok := (*w).(*respLogger); ok {
  		// Don't double-wrap!
  		panic("multiple NewLogged calls!")
  	}
  	rl := &respLogger{
  		startTime:         time.Now(),
  		req:               req,
  		w:                 *w,
  		logStacktracePred: DefaultStacktracePred,
  	}
  	*w = rl // hijack caller's writer!
  	return rl
  }
docs: // NewLogged turns a normal response writer into a logged response writer.
  //
  // Usage:
  //
  // defer NewLogged(req, &w).StacktraceWhen(StatusIsNot(200, 202)).Log()
  //
  // (Only the call to Log() is deferred, so you can set everything up in one line!)
  //
  // Note that this *changes* your writer, to route response writing actions
  // through the logger.
  //
  // Use LogOf(w).Addf(...) to log something along with the response result.