@@ -1781,29 +1781,40 @@ def run_kw() -> Any:
17811781 result = None
17821782
17831783 if len (test .body ):
1784- for kw in test .body :
1785- with LOGGER .delayed_logging :
1786- try :
1787- result = self ._run_keyword (kw , evaluate_context )
1788- except (SystemExit , KeyboardInterrupt ):
1789- raise
1790- except BaseException as e :
1791- result = e
1792- break
1793- finally :
1794- if get_robot_version () <= (7 , 2 ):
1795- messages = LOGGER ._log_message_cache or []
1796- for msg in messages or ():
1797- # hack to get and evaluate log level
1798- listener : Any = next (iter (LOGGER ), None )
1799- if listener is None or self .check_message_is_logged (listener , msg ):
1800- self .log_message (
1801- {
1802- "level" : msg .level ,
1803- "message" : msg .message ,
1804- "timestamp" : msg .timestamp ,
1805- }
1806- )
1784+ if get_robot_version () >= (7 , 3 ):
1785+ for kw in test .body :
1786+ with evaluate_context .output .delayed_logging :
1787+ try :
1788+ result = self ._run_keyword (kw , evaluate_context )
1789+ except (SystemExit , KeyboardInterrupt ):
1790+ raise
1791+ except BaseException as e :
1792+ result = e
1793+ break
1794+ else :
1795+ for kw in test .body :
1796+ with LOGGER .delayed_logging :
1797+ try :
1798+ result = self ._run_keyword (kw , evaluate_context )
1799+ except (SystemExit , KeyboardInterrupt ):
1800+ raise
1801+ except BaseException as e :
1802+ result = e
1803+ break
1804+ finally :
1805+ if get_robot_version () <= (7 , 2 ):
1806+ messages = LOGGER ._log_message_cache or []
1807+ for msg in messages or ():
1808+ # hack to get and evaluate log level
1809+ listener : Any = next (iter (LOGGER ), None )
1810+ if listener is None or self .check_message_is_logged (listener , msg ):
1811+ self .log_message (
1812+ {
1813+ "level" : msg .level ,
1814+ "message" : msg .message ,
1815+ "timestamp" : msg .timestamp ,
1816+ }
1817+ )
18071818 return result
18081819
18091820 result = self .run_in_robot_thread (run_kw )
0 commit comments