code: func matchMapHandler(matchMap map[string]interface{}, inverse bool, a LogHandler) LogHandler {
  	return FuncHandler(func(r *Record) error {
  		matchCount := 0
  		for k, v := range matchMap {
  			value, found := r.Context[k]
  			if !found {
  				return nil
  			}
  			// Test for two failure cases
  			if value == v && inverse || value != v && !inverse {
  				return nil
  			} else {
  				matchCount++
  			}
  		}
  		if matchCount != len(matchMap) {
  			return nil
  		}
  		return a.Log(r)
  	})
  }
docs: // Rather then chaining multiple filter handlers, process all here