Especifique el formato de solicitud de registro en aiohttp 2

Estoy usando aiohttp 2 con Python 3.6 y quiero registrar las solicitudes que llegan a la aplicación.

Yo si:

# use ISO timestamps from time import gmtime logging.Formatter.converter = gmtime # create a formatter ch = logging.StreamHandler() formatter = logging.Formatter('%(asctime)s %(levelname)s %(name)s - %(message)s', '%Y-%m-%dT%H:%M:%S') ch.setFormatter(formatter) # show all emssages (default is WARNING) logging.getLogger('aiohttp.access').setLevel(logging.DEBUG) # attach the handler logging.getLogger('aiohttp.access').addHandler(ch) 

y ahora, cuando la aplicación se está ejecutando, obtengo un registro en este formato:

 2017-04-19T16:02:17 INFO aiohttp.access - 127.0.0.1 - - [19/Apr/2017:16:02:17 +0000] "GET /test HTTP/1.1" 404 547 "-" "curl/7.51.0" 

el componente del message tiene una marca de tiempo redundante, y me gustaría personalizar su formato. La documentación dice que debería ser posible, pero no entiendo cómo hacer que realmente funcione y no hay ejemplos de código.

Encontré solo este uso pero con:

 mylogger = logging.Logger('aiohttp.access') mylogger.setLevel(logging.DEBUG) mylogger.addHandler(ch) handler = app.make_handler( logger=mylogger, access_log_format='%r %s %b', ) 

La aplicación no produce ningún registro en absoluto. No entiendo qué hace make_handler exactamente, y una pregunta anterior no ayuda.

¿Cómo puedo formatear la parte del message del registro e insertar los elementos enumerados en los documentos de aiohttp?

Puedes ver mi muestra:

 import asyncio import logging from aiohttp import web mylogger = logging.getLogger('aiohttp.access') mylogger.setLevel(logging.DEBUG) ch = logging.StreamHandler() mylogger.addHandler(ch) async def handle(request): name = request.match_info.get('name', "Anonymous") text = "Hello, " + name return web.Response(text=text) loop = asyncio.get_event_loop() app = web.Application(loop=loop) app.router.add_get('/', handle) app.router.add_get('/{name}', handle) loop.run_until_complete( loop.create_server( app.make_handler(access_log=mylogger, access_log_format='%r %s %b'), '0.0.0.0', 8080)) loop.run_forever() loop.close() 

ejecútelo y acceda a ‘ http://127.0.0.1:8080/xmwd ‘, verá GET /xmwd HTTP/1.1 200 11 en su consola.