From 687dd50ae41c9aea9b340a13472c5f9323d1e5c0 Mon Sep 17 00:00:00 2001 From: Fabian Munkes <105975993+fmunkes@users.noreply.github.com> Date: Mon, 9 Feb 2026 08:16:00 +0100 Subject: [PATCH] Print provider name in logging output (#3113) * multi-instance logging name * use only name --- music_assistant/mass.py | 3 +++ music_assistant/models/provider.py | 10 ++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/music_assistant/mass.py b/music_assistant/mass.py index 6268e661..e2fdb550 100644 --- a/music_assistant/mass.py +++ b/music_assistant/mass.py @@ -837,6 +837,9 @@ class MusicAssistant: ) provider.available = True + # adapt logging name if needed + provider._set_log_level_from_config(provider.config) + # execute post load actions async def _on_provider_loaded() -> None: await provider.loaded_in_mass() diff --git a/music_assistant/models/provider.py b/music_assistant/models/provider.py index 4f7f6705..5caa6b24 100644 --- a/music_assistant/models/provider.py +++ b/music_assistant/models/provider.py @@ -74,7 +74,7 @@ class Provider: self.config = config # update log level if changed - if f"values/{CONF_LOG_LEVEL}" in changed_keys: + if f"values/{CONF_LOG_LEVEL}" in changed_keys or "name" in changed_keys: self._set_log_level_from_config(config) # reload if any non-log-level value keys changed @@ -189,7 +189,13 @@ class Provider: def _set_log_level_from_config(self, config: ProviderConfig) -> None: """Set log level from config.""" mass_logger = logging.getLogger(MASS_LOGGER_NAME) - self.logger = mass_logger.getChild(self.domain) + # self.name is only available after async_init. Otherwise we run into a race condition. + # see https://github.com/music-assistant/support/issues/4801 + logging_name = self.domain + if getattr(self, "available", False): + # async_init completed + logging_name = self.name + self.logger = mass_logger.getChild(logging_name) log_level = str(config.get_value(CONF_LOG_LEVEL)) if log_level == "GLOBAL": self.logger.setLevel(mass_logger.level) -- 2.34.1