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
This commit is contained in:
xzq.xu 2026-03-26 13:57:03 +08:00 • committed by Dennis-yxchen
parent 171c1b76f8
commit 6f581f6de4

View file

@ -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."""