2009-11-20 18 views

回答

1

日誌記錄將會調用str()(它使用__str__(),當它沒有被定義時,它會回退到__repr__())。這是因爲日誌框架不是Unicode安全的(即,當您嘗試將Unicode寫入各種日誌記錄匯時,您可能會遇到錯誤)。

+4

不正確。記錄將使用'str(msg)%args'格式化消息。在Python 2.x中,如果你想提供stringify-behavior,你應該總是實現'__str __()'和'__unicode__'。 – 2009-11-20 11:20:28

1
>>> class MyClass(object): 
...  def __str__(self): 
...   return "foobar" 
... 
>>> import logging 
>>> logging.error(MyClass()) 
ERROR:root:foobar 

按預期工作?!

+0

原來,它實際上工作。 – yanchenko 2009-11-20 11:20:36

相關問題