diff --git a/tangostationcontrol/tangostationcontrol/common/lofar_logging.py b/tangostationcontrol/tangostationcontrol/common/lofar_logging.py index 0a7395644cd57e6773b7d8c01fadc63546c2a019..875bdba3ebbbdd06218d4a60dc5e910da01da555 100644 --- a/tangostationcontrol/tangostationcontrol/common/lofar_logging.py +++ b/tangostationcontrol/tangostationcontrol/common/lofar_logging.py @@ -251,7 +251,7 @@ def device_logging_to_python(): return inner -def log_exceptions(logger: logging.Logger = None): +def log_exceptions(logger: logging.Logger = None, suppress: bool = False): """Decorator that logs all exceptions that the function raises.""" def wrapper(func): @@ -265,7 +265,8 @@ def log_exceptions(logger: logging.Logger = None): ) # we can log but we cannot hide - raise + if not suppress: + raise return inner diff --git a/tangostationcontrol/tangostationcontrol/devices/base_device_classes/lofar_device.py b/tangostationcontrol/tangostationcontrol/devices/base_device_classes/lofar_device.py index 3ac5a47d52aefb9b6211707cdc8b5f0c7cf20138..36c15a8393648d48edbeea7c552af86250c1191b 100644 --- a/tangostationcontrol/tangostationcontrol/devices/base_device_classes/lofar_device.py +++ b/tangostationcontrol/tangostationcontrol/devices/base_device_classes/lofar_device.py @@ -341,7 +341,7 @@ class LOFARDevice(Device): merge_values[idx] = current_values[idx] @command(polling_period=DEFAULT_METRICS_POLLING_PERIOD) - @log_exceptions() + @log_exceptions(suppress=True) @DurationMetric() def poll_attributes(self): if self.attribute_poller: diff --git a/tangostationcontrol/tangostationcontrol/devices/calibration.py b/tangostationcontrol/tangostationcontrol/devices/calibration.py index 9ce0f8e00434d4eb5c2f24cad02b71a616ceb8f8..a09de1b6f4c11ef4ef46125d6b8277491d4a926e 100644 --- a/tangostationcontrol/tangostationcontrol/devices/calibration.py +++ b/tangostationcontrol/tangostationcontrol/devices/calibration.py @@ -81,7 +81,7 @@ class Calibration(LOFARDevice): self.calibration_count_metric.get_metric([antenna_field_name]).inc() - @log_exceptions() + @log_exceptions(suppress=True) def _antennafield_changed_event(self, event): """Trigger on key external changes in AntennaField settings.""" @@ -104,7 +104,7 @@ class Calibration(LOFARDevice): # frequencies changed, so we need to recalibrate self._calibrate_antenna_field(event.device.name()) - @log_exceptions() + @log_exceptions(suppress=True) def _clock_changed_event(self, event): """Trigger on external changes in frequency settings.""" if event.err: diff --git a/tangostationcontrol/tangostationcontrol/devices/sdp/beamlet.py b/tangostationcontrol/tangostationcontrol/devices/sdp/beamlet.py index b7b6319cf20136db93b004ac9e283d3ddc3f1679..9a55718f3e234e911c78183bcaeab28a586bcab2 100644 --- a/tangostationcontrol/tangostationcontrol/devices/sdp/beamlet.py +++ b/tangostationcontrol/tangostationcontrol/devices/sdp/beamlet.py @@ -763,7 +763,7 @@ class Beamlet(OPCUADevice): # internal functions # -------- - @log_exceptions() + @log_exceptions(suppress=True) def _frequency_change_event(self, event): """Trigger on external changes in frequency settings."""