code: def doLog(self, level, where, format, *args, **kwargs):
          
          if _canShortcutLogging(self.logCategory, level):
              return {}
          args = self.logFunction(*args)
          return doLog(level, self.logObjectName(), self.logCategory,
              format, args, where=where, **kwargs)
docs: Log a message at the given level, with the possibility of going
          higher up in the stack.
  
          @param level: log level
          @type  level: int
          @param where: how many frames to go back from the last log frame;
                        or a function (to log for a future call)
          @type  where: int (negative), or function
  
          @param kwargs: a dict of pre-calculated values from a previous
                         doLog call
  
          @return: a dict of calculated variables, to be reused in a
                   call to doLog that should show the same location
          @rtype:  dict