4
我使用logging模塊在我的應用程序上記錄消息。如何追溯記錄錯誤?
通常我來的情況下對一種格式的字符串或參數出錯會導致錯誤,例如:
import logging
my_log = logging.getLogger("MyLog")
# this is obviously wrong
my_log.info('%d', "abc")
結果是類似於下面的一個錯誤:
Traceback (most recent call last):
File "/usr/lib64/python2.6/logging/__init__.py", line 776, in emit
msg = self.format(record)
File "/usr/lib64/python2.6/logging/__init__.py", line 654, in format
return fmt.format(record)
File "/usr/lib64/python2.6/logging/__init__.py", line 436, in format
record.message = record.getMessage()
File "/usr/lib64/python2.6/logging/__init__.py", line 306, in getMessage
msg = msg % self.args
TypeError: %d format: a number is required, not str
但是,它只是顯示記錄模塊內的回溯;它不會告訴我在我的代碼中發生錯誤的位置。
有什麼辦法解決這個問題嗎?
http://stackoverflow.com/questions/6898674/getting-a-more-useful-logging-module-error-output-in-python看起來像人誰也有類似的問題對你的;有一個代碼的答案用於繼承日誌記錄處理程序,以便在其中添加更好的堆棧跟蹤(包括您從中調用它的位置)。 – bouteillebleu
我無法重現你的錯誤,但也許設置回溯限高的東西會有所幫助。 'import sys; sys.traceback_limit = 10'。 –