2011-12-15 44 views
13

Khi phát triển trên Google App máy chủ ứng dụng động cơ dev địa phương (python) và gặp lỗi, trình duyệt sẽ chỉ hiển thị một cái gì đó như sau:Google App Engine máy chủ ứng dụng dev không hiển thị thông báo lỗi chi tiết

Server lỗi Trang web đã gặp lỗi khi truy xuất http://localhost:8080/. Nó có thể ngừng hoạt động để bảo trì hoặc cấu hình không chính xác. Dưới đây là một số gợi ý: Tải lại trang web này sau. Lỗi HTTP 500 (Lỗi Máy chủ Nội bộ): Đã gặp phải tình trạng không mong muốn trong khi máy chủ đang cố thực hiện yêu cầu.

Có cấu hình nào để hiển thị thông báo lỗi chi tiết không?

+2

Mở cửa sổ 'Nhật ký' được tìm thấy trên trình khởi chạy GAE. –

Trả lời

7

Bạn có thể sử dụng dòng lệnh và bắt đầu máy chủ dev bằng --debug để nhận các thông báo gỡ lỗi chi tiết. Dưới đây là các tài liệu: http://code.google.com/appengine/docs/python/tools/devserver.html#Command_Line_Arguments

Bạn cũng có thể thêm khai thác gỗ để ứng dụng của bạn để nắm bắt các thông tin: http://code.google.com/appengine/docs/python/runtime.html#Logging

+1

Bất kỳ cách nào khi chạy máy chủ cục bộ, chúng tôi sẽ nhận được thông báo lỗi khá chi tiết trong bảng điều khiển. – Gautam

+0

@GautamK Nếu bằng "bản thân bảng điều khiển", bạn có nghĩa là cửa sổ trình duyệt, điều đó hoàn toàn phụ thuộc vào ứng dụng của bạn và những gì nó chọn để trả về khi nó ném ngoại lệ. –

+0

Cảm ơn, phương thức máy chủ dev được cung cấp hoạt động. Tuy nhiên, tôi chỉ tự hỏi tại sao nó sử dụng để làm việc khi cài đặt gỡ lỗi thành True như trong đoạn mã sau: app = webapp2.WSGIApplication ([('/', MainPage), ('/ sign', Guestbook)], debug = True) Trong GAE SDK Python cũ 2.5 sử dụng ứng dụng web, webapp sẽ in dấu vết ngăn xếp vào đầu ra của trình duyệt nếu có lỗi. Trong SDK GAE mới có hỗ trợ cho Python 2.7 và webapp2, việc cài đặt debug = True cũng hoạt động tốt nhưng nó không gửi lỗi tới trình duyệt. – bobojam

2

Đây là những gì tôi đã làm và nó làm việc cho đến nay.

Trong tệp ứng dụng chính của bạn.

... 
import logging 
... 

app = Flask(__name__) 
... 

@app.before_request 
def enable_local_error_handling(): 
    app.logger.addHandler(logging.StreamHandler()) 
    app.logger.setLevel(logging.INFO) 
Các vấn đề liên quan