用法:
debug(msg, *args, **kwargs)
在此記錄器上記錄級別為
DEBUG
的消息。msg
是消息格式字符串,args
是使用字符串格式化運算符合並到msg
中的參數。 (請注意,這意味著您可以在格式字符串中使用關鍵字以及單個字典參數。)當沒有提供args
時,不會對msg
執行 % 格式化操作。kwargs
中有四個關鍵字參數被檢查:exc_info
、stack_info
、stacklevel
和extra
。如果
exc_info
未評估為假,則會將異常信息添加到日誌消息中。如果提供了異常元組(以sys.exc_info()
返回的格式)或異常實例,則使用它;否則,調用sys.exc_info()
獲取異常信息。第二個可選關鍵字參數是
stack_info
,默認為False
。如果為 true,則將堆棧信息添加到日誌消息中,包括實際的日誌調用。請注意,這與通過指定exc_info
顯示的堆棧信息不同:前者是從堆棧底部到當前線程中的日誌調用的堆棧幀,而後者是有關已被調用的堆棧幀的信息在搜索異常處理程序時,在異常之後展開。您可以獨立於
exc_info
指定stack_info
,例如僅顯示您如何在代碼中到達某個點,即使沒有引發異常。堆棧幀打印在標題行之後,標題行顯示:Stack (most recent call last):
這模仿了顯示異常幀時使用的
Traceback (most recent call last):
。第三個可選關鍵字參數是
stacklevel
,默認為1
。如果大於 1,則在計算為記錄事件創建的LogRecord
中設置的行號和函數名稱時,會跳過相應的堆棧幀數。這可用於記錄助手,以便記錄的函數名、文件名和行號不是助手函數/方法的信息,而是其調用者的信息。此參數的名稱反映了warnings
模塊中的等效名稱。第四個關鍵字參數是
extra
,它可用於傳遞一個字典,該字典用於填充為具有用戶定義屬性的日誌事件創建的LogRecord
的__dict__。然後可以隨意使用這些自定義屬性。例如,它們可以合並到記錄的消息中。例如:FORMAT = '%(asctime)s %(clientip)-15s %(user)-8s %(message)s' logging.basicConfig(format=FORMAT) d = {'clientip': '192.168.0.1', 'user': 'fbloggs'} logger = logging.getLogger('tcpserver') logger.warning('Protocol problem: %s', 'connection reset', extra=d)
會打印類似的東西
2006-02-08 22:20:02,165 192.168.0.1 fbloggs Protocol problem: connection reset
extra
中傳遞的字典中的鍵不應與日誌記錄係統使用的鍵發生衝突。 (有關日誌記錄係統使用哪些 key 的更多信息,請參閱Formatter
文檔。)如果您選擇在記錄的消息中使用這些屬性,則需要格外小心。例如,在上麵的示例中,
Formatter
已使用格式字符串設置,該格式字符串在LogRecord
的屬性字典中需要 ‘clientip’ and ‘user’。如果缺少這些,則不會記錄該消息,因為會發生字符串格式異常。所以在這種情況下,您總是需要使用這些鍵傳遞extra
字典。雖然這可能很煩人,但此函數旨在用於特殊情況,例如在許多上下文中執行相同代碼的多線程服務器,並且出現的有趣條件取決於此上下文(例如遠程客戶端 IP 地址和經過身份驗證的用戶名,在上麵的示例中)。在這種情況下,專門的
Formatter
可能會與特定的Handler
一起使用。在 3.2 版中更改:
stack_info
添加了參數。在 3.5 版中更改:
exc_info
參數現在可以接受異常實例。在 3.8 版中更改:
stacklevel
添加了參數。
相關用法
- Python logging.LogRecord用法及代碼示例
- Python logging.handlers.SocketHandler.makePickle用法及代碼示例
- Python logging.debug用法及代碼示例
- Python PIL logical_and() and logical_or()用法及代碼示例
- Python PIL logical_xor() and invert()用法及代碼示例
- Python log10()用法及代碼示例
- Python locals()用法及代碼示例
- Python list remove()用法及代碼示例
- Python len()用法及代碼示例
- Python numpy string less_equal()用法及代碼示例
- Python calendar leapdays()用法及代碼示例
- Python ldexp()用法及代碼示例
- Python list copy()用法及代碼示例
- Python list轉string用法及代碼示例
- Python lzma.LZMACompressor()用法及代碼示例
- Python Functools lru_cache()用法及代碼示例
- Python linecache.getline()用法及代碼示例
- Python scipy linalg.pinv2用法及代碼示例
- Python list insert()用法及代碼示例
- Python lists轉XML用法及代碼示例
注:本文由純淨天空篩選整理自python.org大神的英文原創作品 logging.Logger.debug。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。