def execute(self, logger: Logger, options: Dict[str, Dict[str, Any]]) -> T:
in_root_call = False<EOL>if logger is not None:<EOL><INDENT>if not hasattr(_BaseParsingPlan.thrd_locals, '<STR_LIT>')or _BaseParsingPlan.thrd_locals.flag_exec == <NUM_LIT:0>:<EOL><INDENT>logger.debug('<STR_LIT>'<EOL>'<STR_LIT>'.format(location=self.obj_on_fs_to_parse.get_pretty_location(append_file_ext=False)))<EOL>_BaseParsingPlan.thrd_locals.flag_exec = <NUM_LIT:1><EOL>in_root_call = True<EOL><DEDENT><DEDENT>logger.debug('<STR_LIT>' + get_parsing_plan_log_str(self.obj_on_fs_to_parse, self.obj_type,<EOL>log_only_last=not in_root_call, parser=self.parser))<EOL>try:<EOL><INDENT>res = super(_BaseParsingPlan, self).execute(logger, options)<EOL>if logger.isEnabledFor(DEBUG):<EOL><INDENT>logger.info('<STR_LIT>'<EOL>'<STR_LIT>'.format(loc=self.obj_on_fs_to_parse.get_pretty_location(<EOL>blank_parent_part=not GLOBAL_CONFIG.full_paths_in_logs,<EOL>compact_file_ext=True),<EOL>type=get_pretty_type_str(self.obj_type)))<EOL><DEDENT>else:<EOL><INDENT>logger.info('<STR_LIT>'<EOL>'<STR_LIT>'.format(loc=self.obj_on_fs_to_parse.get_pretty_location(compact_file_ext=True),<EOL>type=get_pretty_type_str(self.obj_type),<EOL>parser=str(self.parser)))<EOL><DEDENT>if in_root_call:<EOL><INDENT>logger.debug('<STR_LIT>')<EOL><DEDENT>return res<EOL><DEDENT>finally:<EOL><INDENT>if in_root_call:<EOL><INDENT>_BaseParsingPlan.thrd_locals.flag_exec = <NUM_LIT:0><EOL><DEDENT><DEDENT>
Overrides the parent method to add log messages.

:param logger: the logger to use during parsing (optional: None is supported)
:param options:
:return: