2016-01-15 40 views
0

更新:我試圖找到例子儘可能容易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 我離開了整個例如,對於接下來的,因爲有時候它很難指出,這一問題是一個字母 - 所以這可以幫助別人。

回答