更新:我試圖找到例子儘可能容易Django的調試不打印設置,因爲unicode字符(python3)的
提示!我錯過了,那個人也不在榜上!當我改變它的名字時 - 一切正常 - 問題出在unicode字符串,如果字符串中有非ascii字符來調試,記錄器根本不打印。在Python2中有一個錯誤,在Python3 unicode是一個默認,所以我沒有想到它 - 但不知何故,它不起作用。如果我使用logger.debug('1: %r' % ascii(suspected))
這幾乎是不錯,但我想<Person: TADEUSZ KOŚCIUSZKO>
代替<Person: TADEUSZ KO\\u015aCIUSZKO>
logger.debug('begin')
suspected = Person.objects.all()
logger.debug('0')
try:
logger.debug('1: %r' % suspected)
except:
logger.debug('crash1')
for sus in suspected:
logger.debug('2: %r' % sus)
try:
logger.debug('3: %r' % suspected)
except:
logger.debug('crash4')
logger.debug('end')
結果:
2016-01-16 08:53:54,665 DEBUG views begin
2016-01-16 08:53:54,667 DEBUG views 0
2016-01-16 08:53:54,938 DEBUG views 2: <Person: JOHN SMITH>
2016-01-16 08:53:55,040 DEBUG views 2: <Person: GEORGE WASHINGTON>
2016-01-16 08:53:55,222 DEBUG views 2: <Person: ABRAHAM LINCOLN>
2016-01-16 08:53:55,253 DEBUG views 2: <Person: PARIS HILTON>
2016-01-16 08:53:55,282 DEBUG views 2: <Person: JOHN WAYNE>
2016-01-16 08:53:55,368 DEBUG views 2: <Person: TEST TEST>
2016-01-16 08:53:55,700 DEBUG views end
爲什麼沒有:
2016-01-16 08:53:54 DEBUG views 1: [<Person: JOHN SMITH>, <Person: GEORGE WASHINGTON>, <Person: ABRAHAM LINCOLN>, <Person: PARIS HILTON>, <Person: JOHN WAYNE>, <Person: TEST TEST>
AND(如果第一次不顯示因爲它很懶)
2016-01-16 08:53:55 DEBUG views 3: [<Person: JOHN SMITH>, <Person: GEORGE WASHINGTON>, <Person: ABRAHAM LINCOLN>, <Person: PARIS HILTON>, <Person: JOHN WAYNE>, <Person: TEST TEST>
或只是崩潰,如果這個調試出了什麼問題?
UPDATE 我離開了整個例如,對於接下來的,因爲有時候它很難指出,這一問題是一個字母 - 所以這可以幫助別人。