Source code for dvc.core.logger

import logging
import functools
import typer.models
from typing import Union
from pathlib import Path
import inspect

from dvc.core.config import ConfigReader, ConfigDefault


[docs]class SetRootLoggingLevel: """ Used as a decorator to set the root logging level """ def __init__(self, func): functools.update_wrapper(self, func) self.func = func
[docs] def set_logging_level(self, logging_level:int ): logging.info(f"Setting root logging level to {logging._levelToName[logging_level]} ") logging.root.setLevel(logging_level)
def __call__(self, *args, **kwargs): """ If no custom logging level is found, then use default logging level (INFO) :param args: :param kwargs: :return: """ try: config_file_path = kwargs['config_file_path'] config_reader = ConfigReader(config_file_path) logging_level = config_reader.logging_level except Exception as e: logging_level = ConfigDefault.VAL__LOGGING_LEVEL logging.warning(f"Cannot find logging_level. Using default {logging_level}") logging_level = logging._nameToLevel[logging_level] finally: self.set_logging_level(logging_level=logging_level) return self.func(*args, **kwargs)