code: func (l *AuditLog) SearchEvents(fromUTC, toUTC time.Time, query string, limit int) ([]EventFields, error) {
  	l.Debugf("SearchEvents(%v, %v, query=%v, limit=%v)", fromUTC, toUTC, query, limit)
  	if limit <= 0 {
  		limit = defaults.EventsIterationLimit
  	}
  	if limit > defaults.EventsMaxIterationLimit {
  		return nil, trace.BadParameter("limit %v exceeds max iteration limit %v", limit, defaults.MaxIterationLimit)
  	}
  	if l.ExternalLog != nil {
  		return l.ExternalLog.SearchEvents(fromUTC, toUTC, query, limit)
  	}
  	return l.localLog.SearchEvents(fromUTC, toUTC, query, limit)
  }
docs: // SearchEvents finds events. Results show up sorted by date (newest first),
  // limit is used when set to value > 0