Skip to content

Commit

Permalink
Do not log distlib.util or filelock
Browse files Browse the repository at this point in the history
Signed-off-by: Bernát Gábor <bgabor8@bloomberg.net>
  • Loading branch information
gaborbernat committed Dec 9, 2022
1 parent 3603a38 commit e19dede
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 25 deletions.
1 change: 1 addition & 0 deletions docs/changelog/2624.bugfix.rst
@@ -0,0 +1 @@
Disable logging from ``distlib.util`` and ``filelock`` as these log messages are too verbose - by :user:`gaborbernat`.
22 changes: 1 addition & 21 deletions src/tox/report.py
Expand Up @@ -204,36 +204,16 @@ def patch_thread() -> Iterator[None]:
def update_verbosity(self, verbosity: int) -> None:
level = _get_level(verbosity)
LOGGER.setLevel(level)
for name in ("distlib.util", "filelock"):
logger = logging.getLogger(name)
for logging_filter in logger.filters: # pragma: no branch # the filters is never empty
if isinstance(logging_filter, LowerInfoLevel): # pragma: no branch # we always find it
logging_filter.level = level
break
self._setup_level(self._is_colored, level)


class LowerInfoLevel(logging.Filter):
def __init__(self, level: int) -> None:
super().__init__()
self.level = level

def filter(self, record: logging.LogRecord) -> bool:
if record.levelname in "INFO":
record.levelno = logging.DEBUG
record.levelname = "DEBUG"
return record.levelno >= self.level


def setup_report(verbosity: int, is_colored: bool) -> ToxHandler:
_clean_handlers(LOGGER)
level = _get_level(verbosity)
LOGGER.setLevel(level)
lower_info_level = LowerInfoLevel(level)
for name in ("distlib.util", "filelock"):
logger = logging.getLogger(name)
logger.filters.clear()
logger.addFilter(lower_info_level)
logger.disabled = True
out_err: OutErr = (sys.stdout, sys.stderr) # type: ignore[assignment]
handler = ToxHandler(level, is_colored, out_err)
LOGGER.addHandler(handler)
Expand Down
8 changes: 4 additions & 4 deletions tests/test_report.py
Expand Up @@ -25,8 +25,8 @@ def test_setup_report(mocker: MockerFixture, capsys: CaptureFixture, verbosity:
logging.info("info")
logging.debug("debug")
logging.log(logging.NOTSET, "not-set") # this should not be logged
lowered = "distlib.util", "filelock"
for name in lowered:
disabled = "distlib.util", "filelock"
for name in disabled:
logger = logging.getLogger(name)
logger.warning(f"{name}-warn")
logger.info(f"{name}-info")
Expand All @@ -38,15 +38,15 @@ def test_setup_report(mocker: MockerFixture, capsys: CaptureFixture, verbosity:
assert color_init.call_count == (1 if color else 0)

msg_count = min(verbosity + 1, 5)
msg_count += (1 if verbosity >= 2 else 0) * len(lowered) # warning lowered
is_debug_or_more = verbosity >= 4
if is_debug_or_more:
msg_count += 1 # we log at debug level setting up the logger
msg_count += (2 if verbosity >= 4 else 1) * len(lowered)

out, err = capsys.readouterr()
assert not err
assert out
assert "filelock" not in out
assert "distlib.util" not in out
lines = out.splitlines()
assert len(lines) == msg_count, out

Expand Down

0 comments on commit e19dede

Please sign in to comment.