Skip to content

Commit e996547

Browse files
committed
Add logging for errors that are raised in spun-off tasks
Exceptions raised in tasks are available from the `Task` object, but if no one's looking at the tasks, we don't see anything. So it is necessary to log in such cases. Signed-off-by: Sahas Subramanian <[email protected]>
1 parent c359d3f commit e996547

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

src/frequenz/sdk/actor/_data_sourcing/microgrid_api_source.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,9 @@ async def _check_battery_request(
155155
"""
156156
for metric in requests:
157157
if metric not in _BatteryDataMethods:
158-
raise ValueError(f"Unknown metric {metric} for Battery id {comp_id}")
158+
err = f"Unknown metric {metric} for Battery id {comp_id}"
159+
logging.error(err)
160+
raise ValueError(err)
159161
if comp_id not in self.comp_data_receivers:
160162
self.comp_data_receivers[
161163
comp_id
@@ -178,7 +180,9 @@ async def _check_ev_charger_request(
178180
"""
179181
for metric in requests:
180182
if metric not in _EVChargerDataMethods:
181-
raise ValueError(f"Unknown metric {metric} for EvCharger id {comp_id}")
183+
err = f"Unknown metric {metric} for EvCharger id {comp_id}"
184+
logging.error(err)
185+
raise ValueError(err)
182186
if comp_id not in self.comp_data_receivers:
183187
self.comp_data_receivers[
184188
comp_id
@@ -201,7 +205,9 @@ async def _check_inverter_request(
201205
"""
202206
for metric in requests:
203207
if metric not in _InverterDataMethods:
204-
raise ValueError(f"Unknown metric {metric} for Inverter id {comp_id}")
208+
err = f"Unknown metric {metric} for Inverter id {comp_id}"
209+
logging.error(err)
210+
raise ValueError(err)
205211
if comp_id not in self.comp_data_receivers:
206212
self.comp_data_receivers[
207213
comp_id
@@ -224,7 +230,9 @@ async def _check_meter_request(
224230
"""
225231
for metric in requests:
226232
if metric not in _MeterDataMethods:
227-
raise ValueError(f"Unknown metric {metric} for Meter id {comp_id}")
233+
err = f"Unknown metric {metric} for Meter id {comp_id}"
234+
logging.error(err)
235+
raise ValueError(err)
228236
if comp_id not in self.comp_data_receivers:
229237
self.comp_data_receivers[
230238
comp_id
@@ -260,7 +268,9 @@ async def _check_requested_component_and_metrics(
260268
elif category == ComponentCategory.METER:
261269
await self._check_meter_request(comp_id, requests)
262270
else:
263-
raise ValueError(f"Unknown component category {category}")
271+
err = f"Unknown component category {category}"
272+
logging.error(err)
273+
raise ValueError(err)
264274

265275
def _get_data_extraction_method(
266276
self, category: ComponentCategory, metric: ComponentMetricId
@@ -286,7 +296,9 @@ def _get_data_extraction_method(
286296
return _MeterDataMethods[metric]
287297
if category == ComponentCategory.EV_CHARGER:
288298
return _EVChargerDataMethods[metric]
289-
raise ValueError(f"Unknown component category {category}")
299+
err = f"Unknown component category {category}"
300+
logging.error(err)
301+
raise ValueError(err)
290302

291303
def _get_metric_senders(
292304
self,

0 commit comments

Comments
 (0)