Source code for datumaro.util.log_utils
# Copyright (C) 2020-2021 Intel Corporation
#
# SPDX-License-Identifier: MIT
import logging
from contextlib import contextmanager
from io import StringIO
[docs]
@contextmanager
def logging_disabled(max_level=logging.CRITICAL):
previous_level = logging.root.manager.disable
logging.disable(max_level)
try:
yield
finally:
logging.disable(previous_level)
[docs]
@contextmanager
def catch_logs(logger=None):
logger = logging.getLogger(logger)
old_propagate = logger.propagate
prev_handlers = logger.handlers
stream = StringIO()
handler = logging.StreamHandler(stream)
logger.handlers = [handler]
logger.propagate = False
try:
yield stream
finally:
logger.handlers = prev_handlers
logger.propagate = old_propagate