¿Cómo registro las solicitudes asíncronas thin + sinatra + rack?

Estoy escribiendo mi primera aplicación web basada en Sinatra como interfaz para otro servicio basado en TCP, usando EventMachine y async_sinatra para procesar las solicitudes HTTP entrantes de forma asincrónica. Cuando estoy probando mi aplicación, todas las solicitudes a rutas sincrónicas se registran en stdout en un formato de registro común, pero las solicitudes asincrónicas no lo son.

He leído fragmentos del código fuente en async_sinatra, Sinatra, Thin y Rack, y parece que el registro de solicitudes sincrónicas se realiza a través de la llamada CommonLogger #. Sin embargo, no puedo encontrar ningún lugar en el código asincrónico en async_sinatra o Thin que parezca pasar solicitudes asincrónicas a través del middleware de registro (estoy mirandoSinatra :: Helpers # body en async_sinatra y enThin :: Connection.post_process que está escrito en env ['. async_callback'] en Thin connection.rb: 68 y request.rb: 132).

Tengo experiencia con C pero soy relativamente nuevo en Ruby, así que si he usado alguna terminología o notación incorrecta, corríjame. Gracias por adelantado

Edit: esto también afecta el manejo de errores. Si se genera una excepción en una solicitud asincrónica, la solicitud nunca finaliza y el error nunca se registra.