From: Matthew N Heler Date: Fri, 19 Jun 2026 23:10:03 +0000 (-0500) Subject: mgr: filter root logger fallback X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3d0f5e60f5681ef8dfe1adcb9aff1aa39d10eeab;p=ceph.git mgr: filter root logger fallback Make the mgr root logger fallback follow debug_mgr and preserve the original logger name, so third-party DEBUG logs are not emitted by default or mislabeled as mgr logs. Signed-off-by: Matthew N Heler (cherry picked from commit 5c6e98176dd26f241f40de47f56eb771cc139c84) --- diff --git a/src/pybind/mgr/mgr_module.py b/src/pybind/mgr/mgr_module.py index 192eefbf96e..d7af7a86724 100644 --- a/src/pybind/mgr/mgr_module.py +++ b/src/pybind/mgr/mgr_module.py @@ -704,9 +704,8 @@ class MgrRootHandler(CPlusPlusHandler): "[mgr %(levelname)-4s %(name)s] %(message)s" )) - def emit(self, record: logging.LogRecord) -> None: - record.name = "mgr" - super().emit(record) + def set_module(self, module_inst: 'MgrModuleLoggingMixin') -> None: + self._module = module_inst class ClusterLogHandler(logging.Handler): @@ -744,6 +743,7 @@ class FileHandler(logging.FileHandler): class MgrModuleLoggingMixin(object): module_name: str + _root_log_handler: Optional[MgrRootHandler] = None def _configure_logging(self, mgr_level: str, @@ -766,9 +766,20 @@ class MgrModuleLoggingMixin(object): self.log_to_cluster = log_to_cluster root = logging.getLogger() - if not any(isinstance(h, MgrRootHandler) for h in root.handlers): - root.addHandler(MgrRootHandler(self)) - root.setLevel(logging.NOTSET) + root_handler = None + for handler in root.handlers: + if isinstance(handler, MgrRootHandler): + root_handler = handler + break + if root_handler is None: + root_handler = MgrRootHandler(self) + root.addHandler(root_handler) + else: + root_handler.set_module(self) + self._root_log_handler = root_handler + # Module loggers rely on handler thresholds, so keep root permissive + # and apply the mgr fallback threshold on MgrRootHandler itself. + root.setLevel(logging.NOTSET) self._module_logger.addHandler(self._mgr_log_handler) if log_to_file: @@ -796,6 +807,8 @@ class MgrModuleLoggingMixin(object): module_level: str, cluster_level: str) -> None: self._cluster_log_handler.setLevel(cluster_level.upper()) + if self._root_log_handler is not None: + self._root_log_handler.setLevel(self._ceph_log_level_to_python(mgr_level)) module_level = module_level.upper() if module_level else '' if not self._module_level: