diff --git a/pyproject.toml b/pyproject.toml index ac30a7b..894ec37 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "log_setup" -version = "0.1.0" +version = "0.1.1" description = "stdlib app-entry-point logging setup: live run.log, rotation, gzip, retention, consistent format" requires-python = ">=3.10" dependencies = [] diff --git a/src/log_setup/__init__.py b/src/log_setup/__init__.py index ed1dbc7..9717112 100644 --- a/src/log_setup/__init__.py +++ b/src/log_setup/__init__.py @@ -19,4 +19,4 @@ from .setup import setup_logging __all__ = ["setup_logging"] -__version__ = "0.1.0" +__version__ = "0.1.1" diff --git a/src/log_setup/setup.py b/src/log_setup/setup.py index f9f922b..1dcbb12 100644 --- a/src/log_setup/setup.py +++ b/src/log_setup/setup.py @@ -28,7 +28,12 @@ def _level_value(level: Union[int, str]) -> int: """coerce a level name or int to a logging level int (defaults to INFO)""" if isinstance(level, int): return level - return logging.getLevelName(str(level).upper()) if isinstance(level, str) else logging.INFO + if not isinstance(level, str): + return logging.INFO + resolved = logging.getLevelName(level.upper()) + # getLevelName returns the string "Level XXX" for an unknown name, which + # setLevel then rejects — never crash the app over a bad level, fall back to INFO + return resolved if isinstance(resolved, int) else logging.INFO def _clear_owned(root: logging.Logger) -> None: