From 6f581f6de4067e3b5cebd73713e904909279fc19 Mon Sep 17 00:00:00 2001 From: "xzq.xu" Date: Thu, 26 Mar 2026 13:57:03 +0800 Subject: [PATCH] fix: add missing Logger.set_level() method __main__.py calls Logger.set_level(args.log_level) when --log-level is passed, but the method did not exist on Logger, causing an AttributeError. Add set_level(level: str) that resolves the name to a logging constant and reconfigures via configure(force=True). Closes #13 Made-with: Cursor --- openspace/utils/logging.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/openspace/utils/logging.py b/openspace/utils/logging.py index fabb5b1..ce6a3b8 100644 --- a/openspace/utils/logging.py +++ b/openspace/utils/logging.py @@ -233,6 +233,14 @@ class Logger: cls._configured = True + @classmethod + def set_level(cls, level: str) -> None: + """Set log level by name (e.g. ``"DEBUG"``, ``"INFO"``, ``"WARNING"``).""" + resolved = getattr(logging, level.upper(), None) + if resolved is None or not isinstance(resolved, int): + raise ValueError(f"Unknown log level: {level!r}") + cls.configure(level=resolved, force=True) + @classmethod def set_debug(cls, debug_level: int = 2) -> None: """Dynamically switch debug level: 0 = WARNING, 1 = INFO, 2 = DEBUG."""