Debugging asyncio programs
Thankfully, when it comes to debugging asyncio-based applications, we have a couple of options to consider. The writers of the asyncio module have very kindly provided a debug mode, which is quite powerful and can really aid us in our debugging adventures without the overhead of modifying the system's code base too dramatically.
Debug mode
Turning on this debug mode within your asyncio-based programs is relatively simply and requires just a call to this function:
loop.set_debug(True)
Let's take a look at a fully fledged example of this and how it differs from your standard logging. In this example, we'll create a very simple event loop and submit some simple tasks to the event loop:
import asyncio import logging import time logging.basicConfig(level=logging.DEBUG) async def myWorker(): logging.info("My Worker Coroutine Hit") time.sleep(1) async def main(): logging.debug("My Main Function Hit") await asyncio.wait([myWorker()]) loop = asyncio.get_event_loop() loop...