async def callHandlers(self, record):
c = self<EOL>found = <NUM_LIT:0><EOL>while c:<EOL><INDENT>for handler in c.handlers:<EOL><INDENT>found = found + <NUM_LIT:1><EOL>if record.levelno >= handler.level:<EOL><INDENT>await handler.handle(record)<EOL><DEDENT><DEDENT>if not c.propagate:<EOL><INDENT>c = None  <EOL><DEDENT>else:<EOL><INDENT>c = c.parent<EOL><DEDENT><DEDENT>if found == <NUM_LIT:0>:<EOL><INDENT>raise Exception("<STR_LIT>")<EOL><DEDENT>
Pass a record to all relevant handlers.

Loop through all handlers for this logger and its parents in the
logger hierarchy. If no handler was found, raises an error. Stop
searching up the hierarchy whenever a logger with the "propagate"
attribute set to zero is found - that will be the last logger
whose handlers are called.