2012-03-28 69 views
1

在settings.py我有安裝的方式來記錄我的消息是這樣的:調試信號

logging.basicConfig(
    level = logging.DEBUG, 
    format = '%(asctime)s %(levelname)s %(message)s', 
    filename = 'log/sdout.log', 
    filemode = 'a' 
) 

但是有時Django的無提示失敗。就像信號一樣。我的問題是,在我的工作電腦一切都很好。在我的生產服務器上出現了問題。我知道例外的地方。我只是不明白爲什麼會失敗。

所以我把這樣的事情:

logging.debug('before error') #this is printed out 
try: 
    end_date = start_date.date() + relativedelta(months = +month_diff) 
    next_billing_date = start_date.date() + datetime.timedelta(7) 
except : 
    import sys, traceback 
    traceback.print_exc(file=sys.stdout) 

logging.debug('after error') #I never get to that part. 

編輯:上面的代碼就在於叫我models.py當我收到來自PayPal

一個POST失敗後,我試圖尋找到我的Apache錯誤日誌和我的日誌文件,但沒有看到任何錯誤。

我怎麼能看到什麼是錯的代碼?

+0

你是如何調用的代碼? WSGI? – 2012-03-28 09:11:11

+0

這個代碼片斷放在我的models.py。它被稱爲當我notify_url貝寶的職位。 (如果這回答你的問題) – xpanta 2012-03-28 09:49:58

+0

你是如何與你的網絡服務器連接起來的? mod_wsgi的,mod_python的,等等? – 2012-03-28 10:13:06

回答

1

我會首先推薦哨兵 - 如果由於系統限制而無法安裝它 - 它現在可以作爲託管服務在getsentry.com上提供,並且像大多數此類服務一樣,它提供免費層。

但是,問題可能是WSGI默認阻止了寫入stdout,詳細的in the documentation wiki在應用程序問題下。

有張貼在該網頁幾個解決方法,但一個我會先從是以下內容添加到您的WSGI配置:

WSGIRestrictStdout Off

看看是否有錯誤日誌幫助。

+0

肯定。非常感謝! – xpanta 2012-03-29 05:30:06