2011-11-28 9 views
12

Estoy comenzando a desarrollar una aplicación simple de Tornado, y me gustaría ver el inicio de sesión de solicitud stdout mientras desarrollo. Actualmente solo veo 404 mensajes de advertencia.¿Cómo registrar solicitudes para stdout en el servidor web Tornado?

¿Hay alguna manera de tener todas las solicitudes impresas en stdout?

+0

'print' no es una buena alternativa a una solución de registro apropiada – CrackerJack9

+3

true. pero mi necesidad aquí no era una solución de registro adecuada, solo necesito imprimir para obtener retroalimentación visual durante el desarrollo – lfagundes

Respuesta

16

Agregar a su aplicación:

import tornado.options 
tornado.options.parse_command_line() 

La función parse_command_line establece el registro. A continuación, puede pasar --logging=loglevel (por ejemplo, depuración)

3

¿Por qué usted no print? Use print self.request en algún lugar dentro del controlador de solicitudes (quizás dentro del método prepare).

O mejor:

class BaseHandler(tornado.web.RequestHandler): 
    def prepare(self): 
     print self.request 

class SomeHandler(BaseHandler): 
    ... 

uso de una clase base para sus controladores de solicitudes y la subclase que a partir de entonces.

+3

tornado hace io asincrónico, imprimir es una solicitud de bloqueo IO, siempre debes usar el registrador – 0x41ndrea

+1

Bien, pero pensé en usar esto solo para fines de depuración. – fiatjaf

27

Puede añadir esto a usted aplicación:

from tornado.log import enable_pretty_logging 
enable_pretty_logging() 

Por defecto se escribe registros en la salida estándar.

+1

Gracias hombre! eso es todo. Entonces puede "tail -f /var/log/supervisor/tornado-stdout.log" --- o lo que quiera – OWADVL

Cuestiones relacionadas