code: func (h errorHandler) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) {
  	defer h.recovery(ctx, w, r)
  
  	rcode, err := plugin.NextOrFailure(h.Name(), h.Next, ctx, w, r)
  
  	if err != nil {
  		state := request.Request{W: w, Req: r}
  		errMsg := fmt.Sprintf("%s [ERROR %d %s %s] %v", time.Now().Format(timeFormat), rcode, state.Name(), state.Type(), err)
  
  		h.Log.Println(errMsg)
  	}
  
  	return rcode, err
  }
docs: // ServeDNS implements the plugin.Handler interface.