'Low-level logging routine which creates a LogRecord and then calls
all the handlers of this logger to handle the record.'

def _log(self, level, msg, args, exc_info=None, extra=None, stack_info=False):

    sinfo = None
    if _srcfile:
        try:
            (fn, lno, func, sinfo) = self.findCaller(stack_info)
        except ValueError:
            (fn, lno, func) = ('(unknown    file)', 0, '(unknown    function)')
    else:
        (fn, lno, func) = ('(unknown    file)', 0, '(unknown    function)')
    if exc_info:
        if (not isinstance(exc_info, tuple)):
            exc_info = sys.exc_info()
    record = self.makeRecord(self.name, level, fn, lno, msg, args, exc_info, func, extra, sinfo)
    self.handle(record)
