2011-11-28 17 views
12

Sto iniziando a sviluppare una semplice applicazione Tornado e mi piacerebbe vedere il log delle richieste in stdout durante lo sviluppo. Al momento visualizzo solo 404 messaggi di avviso.Come registrare le richieste di stdout nel web server Tornado?

C'è un modo per stampare tutte le richieste in stdout?

+0

'print' non è una buona alternativa a una corretta soluzione di registrazione – CrackerJack9

+3

true. ma il mio bisogno qui non era una soluzione di registrazione corretta, ho solo bisogno di stampare per ottenere feedback visivi durante lo sviluppo – lfagundes

risposta

16

aggiungere questo alla vostra applicazione:

import tornado.options 
tornado.options.parse_command_line() 

La funzione parse_command_line imposta la registrazione. È quindi possibile passare --logging=loglevel (ad esempio debug)

3

Perché non si print? Utilizzare print self.request da qualche parte all'interno del gestore richieste (forse all'interno del metodo prepare).

O meglio:

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

class SomeHandler(BaseHandler): 
    ... 

uso una classe di base per la richiesta gestori e sottoclasse da quel momento in poi.

+3

tornado rende io asincrono, print è un IO di richiesta di blocco, dovresti sempre usare il logger invece – 0x41ndrea

+1

OK, ma ho pensato di usare questo solo per scopi di debug. – fiatjaf

27

È possibile aggiungere questo a voi applicazione:

from tornado.log import enable_pretty_logging 
enable_pretty_logging() 

Di default scrive i log su stdout.

+1

Grazie amico! questo è. Quindi puoi "tail -f /var/log/supervisor/tornado-stdout.log" --- o whatevver – OWADVL

Problemi correlati