func buildFmter(logger *streamlog.StreamLogger) func(url.Values, interface{}) string { type formatter interface { Format(url.Values) string } return func(params url.Values, val interface{}) string { fmter, ok := val.(formatter) if !ok { return fmt.Sprintf("Error: unexpected value of type %T in %s!", val, logger.Name()) } return fmter.Format(params) } }