Skip to content

Commit

Permalink
Merge branch 'master' into develop
Browse files Browse the repository at this point in the history
* master:
  Inherit logging level from parent
  • Loading branch information
jacebrowning committed Nov 14, 2019
2 parents 37224e2 + 859e163 commit 5cb0c32
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 32 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# 1.2.6 (2019-11-14)

- Fixed new loggers to inherit logging level from their parent.

# 1.2.5 (2019-10-19)

- Fixed logging levels to use the default level for new loggers.
Expand Down
30 changes: 28 additions & 2 deletions log/tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,40 @@ def describe_create_logger_record():
def it_uses_the_default_log_level_for_new_loggers(expect):
state.default_level = logging.INFO

expect(
utils.create_logger_record(logging.DEBUG, 'hello', module_name='new_module')
) == False

expect(
utils.create_logger_record(logging.INFO, 'hello', module_name='new_module')
) == True

expect(
utils.create_logger_record(
logging.WARNING, 'hello', module_name='new_module'
)
) == True

def it_inherits_the_parent_logging_level(expect):
state.default_level = logging.INFO

logger = logging.getLogger('parent_module')
logger.level = logging.WARNING

expect(
utils.create_logger_record(
logging.DEBUG, 'hello', module_name='parent_module.new_module'
)
) == False

expect(
utils.create_logger_record(
logging.DEBUG, 'hello', module_name='my_new_module'
logging.INFO, 'hello', module_name='parent_module.new_module'
)
) == False

expect(
utils.create_logger_record(
logging.INFO, 'hello', module_name='my_new_module'
logging.WARNING, 'hello', module_name='parent_module.new_module'
)
) == True
5 changes: 5 additions & 0 deletions log/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,15 @@ def create_logger_record(level, message, *args, exc_info=None, **kwargs) -> bool
frame = inspect.currentframe().f_back.f_back.f_back # type: ignore

module_name = kwargs.pop('module_name', frame.f_globals['__name__'])
parent_module_name = module_name.split('.')[0]

logger = logging.getLogger(module_name)
if not logger.level:
parent_logger = logging.getLogger(parent_module_name)
logger.level = parent_logger.level
if not logger.level:
logger.level = state.default_level

if not logger.isEnabledFor(level):
return False

Expand Down
46 changes: 17 additions & 29 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[tool.poetry]

name = "minilog"
version = "1.2.5"
version = "1.2.6"
description = "Minimalistic wrapper for Python logging."

license = "MIT"
Expand Down

0 comments on commit 5cb0c32

Please sign in to comment.