From 9b8451200786b8d86cf33dd3ae1f14469183f128 Mon Sep 17 00:00:00 2001 From: Elzbieta Kotulska Date: Mon, 14 Jul 2025 12:18:25 +0200 Subject: [PATCH] Log reason for backgroud service stop Log `msg` argument to simplify debugging. Signed-off-by: Elzbieta Kotulska --- src/frequenz/sdk/actor/_actor.py | 3 +++ src/frequenz/sdk/actor/_background_service.py | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/src/frequenz/sdk/actor/_actor.py b/src/frequenz/sdk/actor/_actor.py index cb62b0464..178b746ec 100644 --- a/src/frequenz/sdk/actor/_actor.py +++ b/src/frequenz/sdk/actor/_actor.py @@ -153,5 +153,8 @@ def cancel(self, msg: str | None = None) -> None: Args: msg: The message to be passed to the tasks being cancelled. """ + if msg is not None: + _logger.info("Actor %s cancelled, reason: %s", self, msg) + self._is_cancelled = True return super().cancel(msg) diff --git a/src/frequenz/sdk/actor/_background_service.py b/src/frequenz/sdk/actor/_background_service.py index a5302b17a..f19907868 100644 --- a/src/frequenz/sdk/actor/_background_service.py +++ b/src/frequenz/sdk/actor/_background_service.py @@ -6,9 +6,12 @@ import abc import asyncio import collections.abc +import logging from types import TracebackType from typing import Any, Self +_logger = logging.getLogger(__name__) + class BackgroundService(abc.ABC): """A background service that can be started and stopped. @@ -167,6 +170,10 @@ def cancel(self, msg: str | None = None) -> None: Args: msg: The message to be passed to the tasks being cancelled. """ + _logger.debug( + "Service %s cancelled%s", self, f": {msg}" if msg is not None else "" + ) + for task in self._tasks: task.cancel(msg)