2011-11-28 35 views
12

Tôi đang bắt đầu phát triển một ứng dụng Tornado đơn giản và tôi muốn xem nhật ký yêu cầu trong stdout khi tôi phát triển. Hiện tại tôi chỉ thấy thông báo cảnh báo 404.Làm thế nào để đăng nhập yêu cầu stdout trong máy chủ web Tornado?

Có cách nào để có tất cả các yêu cầu được in ở chế độ stdout không?

+0

'in' không phải là giải pháp thay thế tốt cho giải pháp ghi nhật ký thích hợp – CrackerJack9

+3

đúng. nhưng nhu cầu của tôi ở đây không phải là giải pháp ghi nhật ký thích hợp, tôi chỉ cần in để nhận phản hồi trực quan trong khi phát triển cơn lốc xoáy – lfagundes

Trả lời

16

Thêm phần này vào ứng dụng của bạn:

import tornado.options 
tornado.options.parse_command_line() 

Chức năng parse_command_line thiết lập đăng nhập. Sau đó, bạn có thể vượt qua --logging=loglevel (ví dụ: gỡ lỗi)

3

Tại sao bạn không print? Sử dụng print self.request một nơi nào đó bên trong trình xử lý yêu cầu (có thể nằm trong phương thức prepare).

Hoặc tốt hơn:

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

class SomeHandler(BaseHandler): 
    ... 

sử dụng một lớp cơ sở cho xử lý yêu cầu của bạn và phân lớp nó từ thời điểm đó trên.

+3

làm cho io không đồng bộ, in là yêu cầu chặn IO, bạn nên luôn sử dụng bộ ghi thay vì – 0x41ndrea

+1

Được rồi, nhưng tôi đã nghĩ đến việc sử dụng chỉ dành cho mục đích gỡ lỗi. – fiatjaf

27

Bạn có thể thêm này cho bạn ứng dụng:

from tornado.log import enable_pretty_logging 
enable_pretty_logging() 

Theo mặc định nó ghi log để stdout.

+1

Cảm ơn người đàn ông! đây chính là nó. Sau đó, bạn có thể "tail -f /var/log/supervisor/tornado-stdout.log" --- hoặc whatevver – OWADVL

Các vấn đề liên quan