class_docstr: Deafult logger in PaddleHub
  
  Args:
      name(str) : Logger name, default is 'PaddleHub'
class_docstr_tok: ["Deafult","logger","in","PaddleHub","Args",":","name","(","str",")",":","Logger","name",",","default","is","'PaddleHub","'"]
code: def __init__(self, name: str = None):
      name = "PaddleHub" if not name else name
      self.logger = logging.getLogger(name)
  
      for key, conf in log_config.items():
          logging.addLevelName(conf["level"], key)
          self.__dict__[key] = functools.partial(
              self.__call__, conf["level"]
          )
          self.__dict__[key.lower()] = functools.partial(
              self.__call__, conf["level"]
          )
  
      self.format = colorlog.ColoredFormatter(
          "%(log_color)s[%(asctime)-15s] [%(levelname)8s]%(reset)s - %(message)s",
          log_colors={
              key: conf["color"] for key, conf in log_config.items()
          },
      )
  
      self.handler = logging.StreamHandler()
      self.handler.setFormatter(self.format)
  
      self.logger.addHandler(self.handler)
      self.logLevel = hubconf.log_level
      self.logger.setLevel(logging.DEBUG)
      self.logger.propagate = False
      self._is_enable = hubconf.log_enable
  
imports: import contextlib
  import copy
  import functools
  import logging
  import os
  import sys
  import time
  import threading
  from typing import List
  import colorlog
  from colorama import Fore
  import paddlehub.config
  from paddlehub.env import LOG_HOME
label_desc: Use image node_id 1 to create a new Logger object from inherited base classes: object with example: obj = Logger(name)