From a8ded7656ee2a449a0ca0af5ee855b9639734350 Mon Sep 17 00:00:00 2001 From: Batkhuu Byambajav Date: Mon, 14 Sep 2026 22:06:54 +0900 Subject: [PATCH 1/2] feat: enhance logging configuration to support dynamic log level setting --- src/beans_logging/auto.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/beans_logging/auto.py b/src/beans_logging/auto.py index 6abd91c..b9b6c1c 100644 --- a/src/beans_logging/auto.py +++ b/src/beans_logging/auto.py @@ -5,6 +5,7 @@ from potato_util import validator +_level = os.environ.get("BEANS_LOGGING_AUTO_LEVEL") _is_colorized = validator.is_truthy( os.environ.get("BEANS_LOGGING_AUTO_COLORIZED", "True") ) @@ -14,8 +15,14 @@ from .constants import DEFAULT_STD_HANDLER_NAME _kwargs: dict[str, Any] = {"auto_load": True} -_handler_config: dict[str, Any] = {} +if _level: + if "config" not in _kwargs: + _kwargs["config"] = {} + + _kwargs["config"]["level"] = {"base": _level} + +_handler_config: dict[str, Any] = {} if not _is_colorized: _handler_config["colorize"] = False @@ -23,7 +30,10 @@ _handler_config["format_"] = _format if _handler_config: - _kwargs["config"] = {"handlers": {DEFAULT_STD_HANDLER_NAME: _handler_config}} + if "config" not in _kwargs: + _kwargs["config"] = {} + + _kwargs["config"]["handlers"] = {DEFAULT_STD_HANDLER_NAME: _handler_config} logger_loader: LoggerLoader = LoggerLoader(**_kwargs) From 1f5141b43825c5b9ab5be1a490989a39dfec4bf7 Mon Sep 17 00:00:00 2001 From: Batkhuu Byambajav Date: Mon, 14 Sep 2026 22:16:28 +0900 Subject: [PATCH 2/2] fix: add environment variables for logging configuration and refactor auto.py to streamline log level handling --- .env.example | 4 ++++ README.md | 4 ++++ src/beans_logging/auto.py | 14 ++++---------- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.env.example b/.env.example index 7e81c33..3d14990 100644 --- a/.env.example +++ b/.env.example @@ -1,3 +1,7 @@ # ENV=LOCAL # DEBUG=false # TZ=UTC + +# BEANS_LOGGING_AUTO_LEVEL=INFO +# BEANS_LOGGING_AUTO_COLORIZED=true +# BEANS_LOGGING_AUTO_FORMAT="[{time:YYYY-MM-DD HH:mm:ss.SSS Z} | {extra[level_short]:<5} | {name}:{line}]: {message}" diff --git a/README.md b/README.md index d089fe9..4af14b3 100644 --- a/README.md +++ b/README.md @@ -282,6 +282,10 @@ logger: # ENV=LOCAL # DEBUG=false # TZ=UTC + +# BEANS_LOGGING_AUTO_LEVEL=INFO +# BEANS_LOGGING_AUTO_COLORIZED=true +# BEANS_LOGGING_AUTO_FORMAT="[{time:YYYY-MM-DD HH:mm:ss.SSS Z} | {extra[level_short]:<5} | {name}:{line}]: {message}" ``` --- diff --git a/src/beans_logging/auto.py b/src/beans_logging/auto.py index b9b6c1c..a5869c7 100644 --- a/src/beans_logging/auto.py +++ b/src/beans_logging/auto.py @@ -16,12 +16,6 @@ _kwargs: dict[str, Any] = {"auto_load": True} -if _level: - if "config" not in _kwargs: - _kwargs["config"] = {} - - _kwargs["config"]["level"] = {"base": _level} - _handler_config: dict[str, Any] = {} if not _is_colorized: _handler_config["colorize"] = False @@ -29,11 +23,11 @@ if _format: _handler_config["format_"] = _format -if _handler_config: - if "config" not in _kwargs: - _kwargs["config"] = {} +if _level: + _handler_config["level"] = _level - _kwargs["config"]["handlers"] = {DEFAULT_STD_HANDLER_NAME: _handler_config} +if _handler_config: + _kwargs["config"] = {"handlers": {DEFAULT_STD_HANDLER_NAME: _handler_config}} logger_loader: LoggerLoader = LoggerLoader(**_kwargs)