diff --git a/pyniryo/api/tcp_client.py b/pyniryo/api/tcp_client.py index d845b1d7..80efed01 100644 --- a/pyniryo/api/tcp_client.py +++ b/pyniryo/api/tcp_client.py @@ -42,12 +42,14 @@ def get_deprecation_msg(old_method, new_method): class NiryoRobot(object): - def __init__(self, ip_address=None, verbose=True): + def __init__(self, ip_address=None, verbose=True, logger=None): """ :param ip_address: IP address of the robot :type ip_address: str :param verbose: Enable or disable the information logs :type verbose: bool + :param logger: A custom logger for the NiryoRobot's instance. Note that you're responsible for the logging configuration (Handlers registering). + :type logger: logging.Logger """ self.__ip_address = None self.__port = TCP_PORT @@ -57,9 +59,12 @@ def __init__(self, ip_address=None, verbose=True): self.__is_connected = False - self.__logger = get_logger(self.__class__.__name__) + if logger is None: + self.__logger = get_logger(self.__class__.__name__) + else: + self.__logger = logger if not verbose: - self.__logger.setLevel('WARNING') + self.__logger.setLevel(logging.WARNING) # If user give IP Address, try to connect directly if ip_address is not None: @@ -1557,7 +1562,7 @@ def set_conveyor(self): self.__logger.error("No conveyor connected !") return ConveyorID.NONE else: - self.__logger.error("No new conveyor detected, returning last connected conveyor") + self.__logger.warning("No new conveyor detected, returning last connected conveyor") return connected_conveyors_id[-1] def unset_conveyor(self, conveyor_id): diff --git a/pyniryo/utils/logging.py b/pyniryo/utils/logging.py index 979a8a96..299b4f44 100644 --- a/pyniryo/utils/logging.py +++ b/pyniryo/utils/logging.py @@ -2,7 +2,7 @@ def get_logger(name): - logger = logging.getLogger(f'pyniryo.{name}') + logger = logging.getLogger('pyniryo').getChild(name) if logger.hasHandlers(): logger.handlers.clear() logger.setLevel(logging.INFO)