code: func (r *Hook) Fire(entry *logrus.Entry) error {
  	trace, cause := extractError(entry)
  	for _, ie := range r.ignoredErrors {
  		if ie == cause {
  			return nil
  		}
  	}
  
  	if r.ignoreErrorFunc(cause) {
  		return nil
  	}
  
  	m := convertFields(entry.Data)
  	if _, exists := m["time"]; !exists {
  		m["time"] = entry.Time.Format(time.RFC3339)
  	}
  
  	if r.ignoreFunc(cause, m) {
  		return nil
  	}
  
  	return r.report(entry, cause, m, trace)
  }
docs: // Fire the hook. This is called by Logrus for entries that match the levels
  // returned by Levels().