code: func (h *GlogHandler) BacktraceAt(location string) error {
  	// Ensure the backtrace location contains two non-empty elements
  	parts := strings.Split(location, ":")
  	if len(parts) != 2 {
  		return errTraceSyntax
  	}
  	parts[0] = strings.TrimSpace(parts[0])
  	parts[1] = strings.TrimSpace(parts[1])
  	if len(parts[0]) == 0 || len(parts[1]) == 0 {
  		return errTraceSyntax
  	}
  	// Ensure the .go prefix is present and the line is valid
  	if !strings.HasSuffix(parts[0], ".go") {
  		return errTraceSyntax
  	}
  	if _, err := strconv.Atoi(parts[1]); err != nil {
  		return errTraceSyntax
  	}
  	// All seems valid
  	h.lock.Lock()
  	defer h.lock.Unlock()
  
  	h.location = location
  	atomic.StoreUint32(&h.backtrace, uint32(len(location)))
  
  	return nil
  }
docs: // BacktraceAt sets the glog backtrace location. When set to a file and line
  // number holding a logging statement, a stack trace will be written to the Info
  // log whenever execution hits that statement.
  //
  // Unlike with Vmodule, the ".go" must be present.