docs: def execute(self, logger: Logger, options: Dict[str, Dict[str, Any]]) -> T:
          """
          Overrides the parent method to add log messages.
  
          :param logger: the logger to use during parsing (optional: None is supported)
          :param options:
          :return:
          """
          in_root_call = False
          if logger is not None:
              # log only for the root object, not for the children that will be created by the code below
              if not hasattr(_BaseParsingPlan.thrd_locals, 'flag_exec') \
                      or _BaseParsingPlan.thrd_locals.flag_exec == 0:
                  # print('Executing Parsing Plan for ' + str(self))
                  logger.debug('Executing Parsing Plan for [{location}]'
                               ''.format(location=self.obj_on_fs_to_parse.get_pretty_location(append_file_ext=False)))
                  _BaseParsingPlan.thrd_locals.flag_exec = 1
                  in_root_call = True
  
          # Common log message
          logger.debug('(P) ' + get_parsing_plan_log_str(self.obj_on_fs_to_parse, self.obj_type,
                                                         log_only_last=not in_root_call, parser=self.parser))
  
          try:
              res = super(_BaseParsingPlan, self).execute(logger, options)
              if logger.isEnabledFor(DEBUG):
                  logger.info('(P) {loc} -> {type} SUCCESS !'
                              ''.format(loc=self.obj_on_fs_to_parse.get_pretty_location(
                      blank_parent_part=not GLOBAL_CONFIG.full_paths_in_logs,
                      compact_file_ext=True),
                      type=get_pretty_type_str(self.obj_type)))
              else:
                  logger.info('SUCCESS parsed [{loc}] as a [{type}] successfully. Parser used was [{parser}]'
                              ''.format(loc=self.obj_on_fs_to_parse.get_pretty_location(compact_file_ext=True),
                                        type=get_pretty_type_str(self.obj_type),
                                        parser=str(self.parser)))
              if in_root_call:
                  # print('Completed parsing successfully')
                  logger.debug('Completed parsing successfully')
              return res
  
          finally:
              # remove threadlocal flag if needed
              if in_root_call:
                  _BaseParsingPlan.thrd_locals.flag_exec = 0