code: def add_logging_level(level_name, level_num, method_name=None):
      """
      Adds a new logging level to the `logging` module and the
      currently configured logging class.
  
      Uses the existing numeric level_num if already defined.
  
      Based on https://stackoverflow.com/questions/2183233
      """
      if method_name is None:
          method_name = level_name.lower()
  
      # If the level name is already defined as a top-level `logging`
      # constant, then adopt the existing numeric level.
      if hasattr(logging, level_name):
          existing_level_num = getattr(logging, level_name)
          assert isinstance(existing_level_num, int)
          level_num = existing_level_num
  
      def log_for_level(self, message, *args, **kwargs):
          if self.isEnabledFor(level_num):
              self._log(level_num, message, args, **kwargs)
  
      def log_to_root(message, *args, **kwargs):
          logging.log(level_num, message, *args, **kwargs)
  
      # getLevelName resolves the numeric log level if already defined,
      # otherwise returns a string
      if not isinstance(logging.getLevelName(level_name), int):
          logging.addLevelName(level_num, level_name)
  
      if not hasattr(logging, level_name):
          setattr(logging, level_name, level_num)
  
      if not hasattr(logging.getLoggerClass(), method_name):
          setattr(logging.getLoggerClass(), method_name, log_for_level)
  
      if not hasattr(logging, method_name):
          setattr(logging, method_name, log_to_root)
  
imports: import logging
  import logging.config
  import logging.handlers
  import os
  import sys
  import colorama
  from dvc.progress import Tqdm
label_desc: Use image node_id 1 for calling a global function with example usage: add_logging_level(level_name, level_num, method_name) without return types