2011-11-28 5 views
12

Zaczynam opracowywać prostą aplikację Tornado, a chciałbym, aby podczas logowania pojawiały się żądania logowania na standardowe wyjście. Obecnie widzę tylko 404 komunikaty ostrzegawcze.Jak rejestrować żądania na stdout w serwerze Tornado?

Czy istnieje sposób na wydrukowanie wszystkich żądań w standardowym wydaniu?

+0

'print' nie jest dobrą alternatywą dla prawidłowego rozwiązania rejestrowania – CrackerJack9

+3

prawda. ale moja potrzeba tutaj nie była odpowiednim rozwiązaniem do rejestrowania, wystarczy drukować, aby uzyskać wizualną informację zwrotną podczas programowania – lfagundes

Odpowiedz

16

Dodaj to do swojej aplikacji:

import tornado.options 
tornado.options.parse_command_line() 

Funkcja parse_command_line konfiguruje rejestrowanie. Następnie można przekazać --logging=loglevel (np. Debugowanie)

3

Dlaczego nie print? Użyj print self.request gdzieś wewnątrz modułu obsługi żądań (być może w metodzie prepare).

Albo lepiej:

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

class SomeHandler(BaseHandler): 
    ... 

użycie klasy bazowej dla Twojego zapytania ładowarki i podklasy go od tego czasu.

+3

tornado czyni asynchroniczne, drukuj jest żądaniem blokującym IO, powinieneś zawsze używać rejestratora zamiast – 0x41ndrea

+1

W porządku, ale pomyślałem o użyciu tego tylko do celów debugowania. – fiatjaf

27

Możesz dodać to do ciebie aplikacji:

from tornado.log import enable_pretty_logging 
enable_pretty_logging() 

domyślnie zapisuje logi na standardowe wyjście.

+1

Dzięki człowieku! to jest to. Następnie możesz "tail -f /var/log/supervisor/tornado-stdout.log" --- lub whatevver – OWADVL