diff --git a/src/cmp/CProcessControl.py b/src/cmp/CProcessControl.py index 541714b71c6decefbe58de10da4989f4079acaf4..ca6df801f3e7b4e329e886bbaf123214137ebe5b 100644 --- a/src/cmp/CProcessControl.py +++ b/src/cmp/CProcessControl.py @@ -104,9 +104,7 @@ class CProcessControl(CBase, QObject): self.logger.warning(f"Error cannot handle log record: {e}") elif isinstance(res, cmp.CResultRecord): try: - if isinstance(res, Signal): - res.emit_signal(self._signal_class) - self._internal_logger.debug(f"Emitted {res} in {self._signal_class.__class__.__name__}.") + res.emit_signal(self._signal_class) except Exception as e: self._internal_logger.error(f"Error while emitting {res} in {self.__class__.__name__}: {e}") else: diff --git a/src/cmp/CResultRecord.py b/src/cmp/CResultRecord.py index 54c5c8466fb4dda98508e4d9235b8d627df34a21..af26e01152cb20231267f983e051ede441d79043 100644 --- a/src/cmp/CResultRecord.py +++ b/src/cmp/CResultRecord.py @@ -1,3 +1,4 @@ +import logging from inspect import Signature, Parameter from cmp import CProcessControl as CProcessControl @@ -12,7 +13,16 @@ class CResultRecord: def emit_signal(self, class_object: CProcessControl): if hasattr(class_object, '_internal_logger'): - class_object._internal_logger.info(f"Function {self.function_name} returned {self.result}. " + logger: logging.Logger = class_object._internal_logger + else: + logger = logging.getLogger(f"{__name__} - fallback") + + if self.signal_name is None: + logger.info(f"Function {self.function_name} returned {self.result}. " + f"No signal to emit.") + return + if hasattr(class_object, '_internal_logger'): + logger.info(f"Function {self.function_name} returned {self.result}. " f"Emitting {self} in {class_object.__class__.__name__}.") emitter = getattr(class_object, self.signal_name).emit if isinstance(self.result, tuple):