import asyncio from sanic.response import text from sanic import Sanic from io import StringIO from sanic.utils import sanic_endpoint_test import logging logging_format = '''module: %(module)s; \ function: %(funcName)s(); \ message: %(message)s''' def test_log(): log_stream = StringIO() for handler in logging.root.handlers[:]: logging.root.removeHandler(handler) logging.basicConfig( format=logging_format, level=logging.DEBUG, stream=log_stream ) log = logging.getLogger() app = Sanic('test_logging', logger=True) @app.route('/') def handler(request): log.info('hello world') return text('hello') request, response = sanic_endpoint_test(app) log_text = log_stream.getvalue().strip().split('\n')[-3] assert log_text == "module: test_logging; function: handler(); message: hello world" if __name__ =="__main__": test_log()