Pure Logging improvements

This commit is contained in:
Dirk Alders 2021-01-30 23:14:25 +01:00
parent b5ee20216e
commit a8aa15974b

View File

@ -291,6 +291,9 @@ class pure_json_protocol(object):
self.__sid_name_dict__ = {} self.__sid_name_dict__ = {}
self.__did_name_dict__ = {} self.__did_name_dict__ = {}
# #
self.__callbacks__ = _callback_storage(channel_name, self.__log_prefix__)
self.__init_channel_name__(channel_name)
#
self.__status_name_dict = {} self.__status_name_dict = {}
self.add_status(STATUS_OKAY, 'okay') self.add_status(STATUS_OKAY, 'okay')
self.add_status(STATUS_BUFFERING_UNHANDLED_REQUEST, 'no callback for service, data buffered') self.add_status(STATUS_BUFFERING_UNHANDLED_REQUEST, 'no callback for service, data buffered')
@ -300,9 +303,6 @@ class pure_json_protocol(object):
self.add_status(STATUS_CHECKSUM_ERROR, 'checksum error') self.add_status(STATUS_CHECKSUM_ERROR, 'checksum error')
self.add_status(STATUS_OPERATION_NOT_PERMITTED, 'operation not permitted') self.add_status(STATUS_OPERATION_NOT_PERMITTED, 'operation not permitted')
# #
self.__callbacks__ = _callback_storage(channel_name, self.__log_prefix__)
self.__init_channel_name__(channel_name)
#
self.__clean_receive_buffer__() self.__clean_receive_buffer__()
self.add_service(SID_AUTH_REQUEST, SID_AUTH_RESPONSE, 'authentification request', 'authentification response') self.add_service(SID_AUTH_REQUEST, SID_AUTH_RESPONSE, 'authentification request', 'authentification response')
@ -334,7 +334,7 @@ class pure_json_protocol(object):
self.__comm_inst__.register_callback(self.__data_available_callback__) self.__comm_inst__.register_callback(self.__data_available_callback__)
self.__comm_inst__.register_connect_callback(self.__connection_established__) self.__comm_inst__.register_connect_callback(self.__connection_established__)
self.__comm_inst__.register_disconnect_callback(self.__authentification_state_reset__) self.__comm_inst__.register_disconnect_callback(self.__authentification_state_reset__)
logger.info('%s Initialisation finished.', self.__log_prefix__()) self.logger.info('%s Initialisation finished.', self.__log_prefix__())
def __analyse_frame__(self, frame): def __analyse_frame__(self, frame):
if sys.version_info >= (3, 0): if sys.version_info >= (3, 0):
@ -491,7 +491,7 @@ class pure_json_protocol(object):
try: try:
status, data = callback(msg, *args, **kwargs) status, data = callback(msg, *args, **kwargs)
except Exception as e: except Exception as e:
logger.error('{lp} Exception raised. Check callback {callback_name}: "{message}" and it\'s return values for {msg_info}'.format(lp=self.__log_prefix__(), callback_name=callback.__name__, message=str(e), msg_info=self.__get_message_name__(msg.get_service_id(), msg.get_data_id()))) self.logger.error('{lp} Exception raised. Check callback {callback_name}: "{message}" and it\'s return values for {msg_info}'.format(lp=self.__log_prefix__(), callback_name=callback.__name__, message=str(e), msg_info=self.__get_message_name__(msg.get_service_id(), msg.get_data_id())))
status = STATUS_CALLBACK_ERROR status = STATUS_CALLBACK_ERROR
data = None data = None
else: else:
@ -505,7 +505,7 @@ class pure_json_protocol(object):
try: try:
callback(msg, *args, **kwargs) callback(msg, *args, **kwargs)
except Exception as e: except Exception as e:
logger.error('{lp} Exception raised. Check callback {callback_name}: "{message}" for {msg_info}'.format(lp=self.__log_prefix__(), callback_name=callback.__name__, message=str(e), msg_info=self.__get_message_name__(msg.get_service_id(), msg.get_data_id()))) self.logger.error('{lp} Exception raised. Check callback {callback_name}: "{message}" for {msg_info}'.format(lp=self.__log_prefix__(), callback_name=callback.__name__, message=str(e), msg_info=self.__get_message_name__(msg.get_service_id(), msg.get_data_id())))
return # No response needed return # No response needed
self.send(self.__sid_response_dict__[msg.get_service_id()], msg.get_data_id(), data, status=status) self.send(self.__sid_response_dict__[msg.get_service_id()], msg.get_data_id(), data, status=status)
@ -568,7 +568,7 @@ class pure_json_protocol(object):
if service_id not in self.__auth_whitelist__: if service_id not in self.__auth_whitelist__:
self.__auth_whitelist__[service_id] = [] self.__auth_whitelist__[service_id] = []
self.__auth_whitelist__[service_id].append(data_id) self.__auth_whitelist__[service_id].append(data_id)
logger.debug('%s Adding Message (%s) to the authentification whitelist', self.__log_prefix__(), self.__get_message_name__(service_id, data_id)) self.logger.debug('%s Adding Message (%s) to the authentification whitelist', self.__log_prefix__(), self.__get_message_name__(service_id, data_id))
def add_service(self, req_sid, resp_sid, req_name=None, resp_name=None): def add_service(self, req_sid, resp_sid, req_name=None, resp_name=None):
""" """
@ -580,10 +580,10 @@ class pure_json_protocol(object):
:type resp_sid: int :type resp_sid: int
""" """
if req_sid in self.__sid_response_dict__: if req_sid in self.__sid_response_dict__:
logger.error('%s Service with Request-SID=%d and Response-SID=%d not added, because request SID is already registered', self.__log_prefix__(), req_sid, resp_sid) self.logger.error('%s Service with Request-SID=%d and Response-SID=%d not added, because request SID is already registered', self.__log_prefix__(), req_sid, resp_sid)
raise RequestSidExistsError("Request for this Service is already registered") raise RequestSidExistsError("Request for this Service is already registered")
elif resp_sid in self.__sid_response_dict__.values(): elif resp_sid in self.__sid_response_dict__.values():
logger.error('%s Service with Request-SID=%d and Response-SID=%d not added, because response SID is already registered', self.__log_prefix__(), req_sid, resp_sid) self.logger.error('%s Service with Request-SID=%d and Response-SID=%d not added, because response SID is already registered', self.__log_prefix__(), req_sid, resp_sid)
raise ResponseSidExistsError("Response for this Service is already registered") raise ResponseSidExistsError("Response for this Service is already registered")
else: else:
self.__sid_response_dict__[req_sid] = resp_sid self.__sid_response_dict__[req_sid] = resp_sid
@ -591,7 +591,7 @@ class pure_json_protocol(object):
self.__sid_name_dict__[req_sid] = req_name self.__sid_name_dict__[req_sid] = req_name
if resp_name is not None: if resp_name is not None:
self.__sid_name_dict__[resp_sid] = resp_name self.__sid_name_dict__[resp_sid] = resp_name
logger.debug('%s Adding Service with Request=%s and Response=%s', self.__log_prefix__(), req_name or repr(req_sid), resp_name or repr(resp_sid)) self.logger.debug('%s Adding Service with Request=%s and Response=%s', self.__log_prefix__(), req_name or repr(req_sid), resp_name or repr(resp_sid))
def add_status(self, status, name): def add_status(self, status, name):
""" """