diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index fbdc716..0f52539 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.8", "3.14"] + python-version: ["3.10", "3.14"] steps: - name: Checkout 🛒 diff --git a/src/keboola/component/interface.py b/src/keboola/component/interface.py index 6d83b4a..8da2e76 100644 --- a/src/keboola/component/interface.py +++ b/src/keboola/component/interface.py @@ -160,18 +160,22 @@ def filter(self, rec): hd1 = logging.StreamHandler(sys.stdout) hd1.addFilter(InfoFilter()) + hd1._keboola_owned = True hd2 = logging.StreamHandler(sys.stderr) hd2.setLevel(logging.WARNING) + hd2._keboola_owned = True - logging.getLogger().setLevel(log_level) - # remove default handler - for h in logging.getLogger().handlers: - logging.getLogger().removeHandler(h) - logging.getLogger().addHandler(hd1) - logging.getLogger().addHandler(hd2) + root = logging.getLogger() + root.setLevel(log_level) + # Remove only handlers previously installed by keboola.component, leaving + # any external handlers (e.g. test infrastructure) untouched. + for h in list(root.handlers): + if getattr(h, "_keboola_owned", False): + root.removeHandler(h) + root.addHandler(hd1) + root.addHandler(hd2) - logger = logging.getLogger() - return logger + return root @staticmethod def set_gelf_logger( @@ -192,9 +196,11 @@ def set_gelf_logger( Returns: Logger object """ - # remove existing handlers - for h in logging.getLogger().handlers: - logging.getLogger().removeHandler(h) + # Remove only handlers previously installed by keboola.component. + root = logging.getLogger() + for h in list(root.handlers): + if getattr(h, "_keboola_owned", False): + root.removeHandler(h) if stdout: CommonInterface.set_default_logger(log_level) @@ -210,6 +216,7 @@ def set_gelf_logger( else: raise ValueError(f"Unsupported gelf transport layer: {transport_layer}. Choose TCP or UDP") + gelf._keboola_owned = True logging.getLogger().setLevel(log_level) logging.getLogger().addHandler(gelf) diff --git a/uv.lock b/uv.lock index 57d6fc8..2a85fca 100644 --- a/uv.lock +++ b/uv.lock @@ -58,7 +58,7 @@ wheels = [ [[package]] name = "keboola-component" -version = "1.9.0" +version = "0.0.0" source = { virtual = "." } dependencies = [ { name = "deprecated" },