2014-09-02 142 views
2

我寫了我自己的自定義客戶端,它通過我的無線網卡發送原始http請求到我的燒瓶網絡服務器。燒瓶JSON請求400日誌記錄?

這是一個典型的請求是什麼樣子:

Content-Length: 214 
User-Agent: blah 
Connection: close 
Host: 1.2.3.4:5000 
Content-Type: application/json 

{"data":[{"scoutId":2,"message":"ph=5.65"},{"scoutId":4,"message":"ph=4.28"},{"scoutId":3,"message":"ph=4.28"},{"scoutId":2,"message":"ph=5.65"},{"scoutId":4,"message":"ph=4.28"},{"scoutId":3,"message":"ph=4.30"}]} 

有時候,我的客戶做砸了,發送畸形的JSON請求到我的燒瓶服務器。通常情況下,燒瓶將只顯示:

1.2.3.5 - - [01/Sep/2014 22:13:03] "POST/HTTP/1.1" 400 - 

並沒有任何關於請求的信息。

我想跟蹤在我的環境中產生400的每個請求,並分析導致這些錯誤的原因。

我在哪裏可以將我的自定義錯誤功能放入燒瓶服務器?

回答

4

嘗試開啓此:

app.config['TRAP_BAD_REQUEST_ERRORS'] = True 

這應該使瓶拋出一個異常,而不是隻記錄了400(見documentation here)。

如果您需要做的事情還不止這些,使事件處理程序:

http://flask.pocoo.org/docs/0.10/patterns/errorpages/

@app.errorhandler(400) 
def page_not_found(exc): 
    #do something with the exception object `exc` here 
    .... 

或者試試/包裹視圖函數體中嘗試不同的。