diff --git a/slack_sdk/socket_mode/builtin/client.py b/slack_sdk/socket_mode/builtin/client.py index f0181b9b6..89463a767 100644 --- a/slack_sdk/socket_mode/builtin/client.py +++ b/slack_sdk/socket_mode/builtin/client.py @@ -247,10 +247,15 @@ def _on_message(self, message: str): listener(message) def _on_error(self, error: Exception): - self.logger.exception( + error_message = ( f"on_error invoked (session id: {self.session_id()}, " f"error: {type(error).__name__}, message: {error})" ) + if self.trace_enabled: + self.logger.exception(error_message) + else: + self.logger.error(error_message) + for listener in self.on_error_listeners: listener(error) @@ -281,10 +286,14 @@ def _run_current_session(self): f" (session id: {session_id})" ) except Exception as e: - self.logger.exception( + error_message = ( "Failed to start or stop the current session" f" (session id: {session_id}, error: {e})" ) + if self.trace_enabled: + self.logger.exception(error_message) + else: + self.logger.error(error_message) def _monitor_current_session(self): if self.current_app_monitor_started: diff --git a/slack_sdk/socket_mode/builtin/connection.py b/slack_sdk/socket_mode/builtin/connection.py index 92e2c93ff..d0c5ea303 100644 --- a/slack_sdk/socket_mode/builtin/connection.py +++ b/slack_sdk/socket_mode/builtin/connection.py @@ -167,9 +167,11 @@ def connect(self) -> None: if e.args and len(e.args) > 1 and isinstance(e.args[0], int): code = e.args[0] if code is not None: - self.logger.exception( - f"Error code: {code} (session id: {self.session_id}, error: {e})" - ) + error_message = f"Error code: {code} (session id: {self.session_id}, error: {e})" + if self.trace_enabled: + self.logger.exception(error_message) + else: + self.logger.error(error_message) raise except Exception as e: @@ -300,10 +302,15 @@ def check_state(self) -> None: ) self.consecutive_check_state_error_count = 0 except Exception as e: - self.logger.exception( + error_message = ( "Failed to check the state of sock " f"(session id: {self.session_id}, error: {type(e).__name__}, message: {e})" ) + if self.trace_enabled: + self.logger.exception(error_message) + else: + self.logger.error(error_message) + self.consecutive_check_state_error_count += 1 if self.consecutive_check_state_error_count >= 5: self.disconnect() @@ -452,28 +459,41 @@ def run_until_completion(self, state: ConnectionState) -> None: if self.on_error_listener is not None: self.on_error_listener(e) else: - self.logger.exception( + error_message = ( "Got an OSError while receiving data" f" (session id: {self.session_id}, error: {e})" ) + if self.trace_enabled: + self.logger.exception(error_message) + else: + self.logger.error(error_message) + # As this connection no longer works in any way, terminating it if self.is_active(): try: self.disconnect() except Exception as disconnection_error: - self.logger.exception( + error_message = ( "Failed to disconnect" f" (session id: {self.session_id}, error: {disconnection_error})" ) + if self.trace_enabled: + self.logger.exception(error_message) + else: + self.logger.error(error_message) state.terminated = True break except Exception as e: if self.on_error_listener is not None: self.on_error_listener(e) else: - self.logger.exception( + error_message = ( "Got an exception while receiving data" f" (session id: {self.session_id}, error: {e})" ) + if self.trace_enabled: + self.logger.exception(error_message) + else: + self.logger.error(error_message) state.terminated = True