code: def get_log_report(log: Union[logging.Logger,
                                logging.PlaceHolder]) -> Dict[str, Any]:
      
      if isinstance(log, logging.Logger):
          # suppress invalid error for Logger.manager:
          # noinspection PyUnresolvedReferences
          return {
              '(object)': str(log),
              'level': log.level,
              'disabled': log.disabled,
              'propagate': log.propagate,
              'parent': str(log.parent),
              'manager': str(log.manager),
              'handlers': [get_handler_report(h) for h in log.handlers],
          }
      elif isinstance(log, logging.PlaceHolder):
          return {
              "(object)": str(log),
          }
      else:
          raise ValueError("Unknown object type: {!r}".format(log))
docs: Returns information on a log, as a dictionary. For debugging.