<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _GetSupportedFilesInDir(self, fileDir, fileList, supportedFormatList, ignoreDirList):
 """ Recursively get all supported files given a root search directory. Supported file extensions are given as a list, as are any directories which should be ignored. The result will be appended to the given file list argument. Parameters fileDir : string Path to root of directory tree to search. fileList : string List to add any found files to. supportedFormatList : list List of supported file extensions. ignoreDirList : list List of directories to ignore. """

    goodlogging.Log.Info("CLEAR", "Parsing file directory: {0}".format(fileDir))
    if os.path.isdir(fileDir) is True:
      for globPath in glob.glob(os.path.join(fileDir, '*')):
        if util.FileExtensionMatch(globPath, supportedFormatList):
          newFile = tvfile.TVFile(globPath)
          if newFile.GetShowDetails():
            fileList.append(newFile)
        elif os.path.isdir(globPath):
          if(os.path.basename(globPath) in ignoreDirList):
            goodlogging.Log.Info("CLEAR", "Skipping ignored directory: {0}".format(globPath))
          else:
            self._GetSupportedFilesInDir(globPath, fileList, supportedFormatList, ignoreDirList)
        else:
          goodlogging.Log.Info("CLEAR", "Ignoring unsupported file or folder: {0}".format(globPath))
    else:
      goodlogging.Log.Info("CLEAR", "Invalid non-directory path given to parse")