我有一個Django應用程序在gunicorn服務器上運行, nginx預先。 我需要診斷與HTTP 500結果, 但錯誤日誌文件生產故障不包含我期望的信息。 正是如此:Django與gunicorn和nginx:HTTP 500沒有出現在日誌文件中
- gunicorn已經setting
errorlog = "/somepath/gunicorn-errors.log"
- Nginx已經setting
error_log /somepath/nginx-errors.log;
- 我的應用程序有一個
InternalErrorView
其中dispatch
做一個 無條件raise Exception("Just for testing.")
這一觀點被映射到URL/fail_now
- 我有未修改
handler500
- 當我跑我的
DEBUG=True
應用程序,有我的瀏覽器請求/fail_now
,我看到常用的Django錯誤屏幕也好,包括 的"Just for testing."
消息。精細。 - 當我運行我的應用程序
DEBUG=False
時,我得到的響應僅包括,如預期的那樣。精細。 - 然而,當我看着
gunicorn-errors.log
,對於這個HTTP 500事件根本沒有進入 。 爲什麼?我怎麼才能得到它? 我想獲得回溯。 - 同樣,在
nginx-errors.log
:500沒有一絲或/fail_now
URL。 爲什麼?
獎金的問題: 當我比較這對我原來的生產問題,我得到 不同的反應有:與 <h1><p>Internal Server Error</p></h1>
爲中心消息9行的文件。 爲什麼?
獎金問題2: 當我將數據庫中的內容複製到我的臨時服務器(等同 在配置到生產服務器),並在Django有設置 DEBUG=True
,/fail_now
按預期工作,但我的原 問題仍然顯示爲<h1><p>Internal Server Error</p></h1>
。 WTF?