Exemplo n.º 1
0
    def _timeout_observer(self, connection_observer, timeout, passed_time, runner_logger, kind="background_run"):
        """
        Set connection_observer status to timed-out
        :param connection_observer: ConnectionObserver instance (command or event)
        :param timeout: timeout
        :param passed_time: passed time
        :param runner_logger: runner logger
        :param kind: Kind of running
        :return: None
        """
        if not connection_observer.life_status.was_on_timeout_called:
            connection_observer.life_status.was_on_timeout_called = True
            if not connection_observer.done():
                if connection_observer.is_command():
                    exception = CommandTimeout(connection_observer=connection_observer,
                                               timeout=timeout, kind=kind, passed_time=passed_time)
                else:
                    exception = ConnectionObserverTimeout(connection_observer=connection_observer,
                                                          timeout=timeout, kind=kind, passed_time=passed_time)
                connection_observer.set_exception(exception)
                connection_observer.on_timeout()

                observer_info = "{}.{}".format(connection_observer.__class__.__module__, connection_observer)
                timeout_msg = "has timed out after {:.2f} seconds.".format(passed_time)
                msg = "{} {}".format(observer_info, timeout_msg)

                # levels_to_go_up: extract caller info to log where .time_out_observer has been called from
                connection_observer._log(logging.INFO, msg, levels_to_go_up=2)
                log_into_logger(runner_logger, level=logging.DEBUG,
                                msg="{} {}".format(connection_observer, timeout_msg),
                                levels_to_go_up=1)
Exemplo n.º 2
0
 def _log(self, msg, level, levels_to_go_up=1):
     if self.logger:
         try:
             # levels_to_go_up=1 : extract caller info to log where _log() has been called from
             log_into_logger(logger=self.logger,
                             level=level,
                             msg=msg,
                             levels_to_go_up=levels_to_go_up)
         except Exception as err:
             print(err)  # logging errors should not propagate
Exemplo n.º 3
0
    def _log(self, lvl, msg, extra=None, levels_to_go_up=1):
        extra_params = {
            'log_name': self.get_logger_name()
        }

        if extra:
            extra_params.update(extra)

        # levels_to_go_up=1 : extract caller info to log where _log() has been called from
        log_into_logger(self.logger, lvl, msg, extra=extra_params, levels_to_go_up=levels_to_go_up)
        log_into_logger(self.device_logger, lvl, msg, extra=extra_params, levels_to_go_up=levels_to_go_up)
Exemplo n.º 4
0
    def _log(self, level, msg, extra=None, levels_to_go_up=1):
        if self.logger:
            extra_params = {
                'log_name': self.name
            }

            if extra:
                extra_params.update(extra)
            try:
                # levels_to_go_up=1 : extract caller info to log where _log() has been called from
                log_into_logger(logger=self.logger, level=level, msg=msg, extra=extra_params,
                                levels_to_go_up=levels_to_go_up)
            except Exception as err:
                print(err)  # logging errors should not propagate
Exemplo n.º 5
0
def time_out_observer(connection_observer,
                      timeout,
                      passed_time,
                      runner_logger,
                      kind="background_run"):
    """Set connection_observer status to timed-out"""
    if not connection_observer.life_status.was_on_timeout_called:
        connection_observer.life_status.was_on_timeout_called = True
        if not connection_observer.done():
            if hasattr(connection_observer, "command_string"):
                exception = CommandTimeout(
                    connection_observer=connection_observer,
                    timeout=timeout,
                    kind=kind,
                    passed_time=passed_time)
            else:
                exception = ConnectionObserverTimeout(
                    connection_observer=connection_observer,
                    timeout=timeout,
                    kind=kind,
                    passed_time=passed_time)
            # TODO: secure_data_received() may change status of connection_observer
            # TODO: and if secure_data_received() runs inside threaded connection - we have race
            connection_observer.set_exception(exception)

            connection_observer.on_timeout()

            observer_info = "{}.{}".format(
                connection_observer.__class__.__module__, connection_observer)
            timeout_msg = "has timed out after {:.2f} seconds.".format(
                passed_time)
            msg = "{} {}".format(observer_info, timeout_msg)

            # levels_to_go_up: extract caller info to log where .time_out_observer has been called from
            connection_observer._log(logging.INFO, msg, levels_to_go_up=2)
            log_into_logger(runner_logger,
                            level=logging.DEBUG,
                            msg="{} {}".format(connection_observer,
                                               timeout_msg),
                            levels_to_go_up=1)
Exemplo n.º 6
0
 def fun_using_helper_logging():
     log_into_logger(logger, level=logging.WARNING, msg="hi", extra={'transfer_direction': '<'})