exasol / ai-lab

Development environment for data science developers
MIT License
3 stars 0 forks source link

Reduce log level for transitive libraries in notebook tests #297

Closed ckunki closed 2 months ago

ckunki commented 2 months ago

In the scope of ticket #193 logging was enabled for testing the Jupyter notebooks with level INFO. The current ticket now additionally requests to reduce the log level for lower level libraries, such as luigi and ITDE.

Proposed approach

  1. In file notebook_test_utils.py add function
from inspect import cleandoc
def set_log_level_for_libraries(level=logging.WARNING):
    modules = cleandoc(
        """
        traitlets
        luigi-interface
        luigi-interface.PrepareDockerNetworkForTestEnvironment
        luigi-interface.SpawnTestDockerDatabase
        luigi-interface.SpawnTestEnvironmentWithDockerDB
        luigi-interface.WaitForTestDockerDatabase
        """
    ).split()
    _logger.info(
        f"Setting log level to '%s' for modules\n  - %s",
        logging.getLevelName(level),
        "\n  - ".join(modules),
    )
    for m in modules:
        logging.getLogger(m).setLevel(level)
  1. In the resp. Notebook tests import and call this function:
from notebook_test_utils import set_log_level_for_libraries
set_log_level_for_libraries()