code: def log(cls, level, message):
          
          if cls.logger is None:
              cls.setup_logging()
  
          log_levels = {'DEBUG': logging.DEBUG, 'ERROR': logging.ERROR, 'INFO': logging.INFO, 'WARNING': logging.WARNING,
                        'CRITICAL': logging.CRITICAL}
  
          cls.logger.log(level=log_levels[level], msg=message)
docs: :param level: The log level as in the Python logging documentation, 5 different possible values with increasing
           severity
          :type level: String of value 'DEBUG', 'INFO', 'WARNING', 'ERROR' or 'CRITICAL'.
          :param message: The logging data which should be written to the log file. In order to achieve a csv-file
           compatible format, all fields must be separated by a colon. Furthermore, all strings which could contain
           colons, spaces or other special characters must be enclosed in double-quotes.
           e.g. '{main_data_id}, "{exception_type}", "{message}", {wd_id}, {duration}'.format(
                          main_data_id=<main_id>,
                          exception_type=<excpetion type>,
                          message=<exception message>,
                          wd_id=<wikidata id>,
                          duration=<duration of action>
          :type message: str