當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python logging.LogRecord用法及代碼示例


用法:

class logging.LogRecord(name, level, pathname, lineno, msg, args, exc_info, func=None, sinfo=None)

包含與正在記錄的事件相關的所有信息。

主要信息在 msgargs 中傳遞,它們使用 msg % args 組合以創建記錄的 message 字段。

參數

  • name- 用於記錄此 LogRecord 表示的事件的記錄器的名稱請注意,此名稱將始終具有此值,即使它可能由附加到不同(祖先)記錄器的處理程序發出。
  • level- 記錄事件的數字級別(DEBUG、INFO 等之一)請注意,這將轉換為two日誌記錄的屬性:levelno對於數值和levelname對應的級別名稱。
  • pathname- 進行日誌調用的源文件的完整路徑名。
  • lineno- 進行日誌調用的源文件中的行號。
  • msg- 事件說明消息,可能是帶有變量數據占位符的格式字符串。
  • args- 可變數據合並到msg獲取事件說明的參數。
  • exc_info- 具有當前異常信息的異常元組,或None如果沒有異常信息可用。
  • func- 調用記錄調用的函數或方法的名稱。
  • sinfo- 一個文本字符串,表示從當前線程中的堆棧底部到日誌調用的堆棧信息。

在 3.2 版中更改:創建一個logging.LogRecord通過提供一個用於創建記錄的工廠,使配置變得更加可配置。工廠可以設置使用getLogRecordFactory()setLogRecordFactory()(工廠簽名見此)。

此函數可用於在創建時將您自己的值注入LogRecord。您可以使用以下模式:

old_factory = logging.getLogRecordFactory()

def record_factory(*args, **kwargs):
    record = old_factory(*args, **kwargs)
    record.custom_attribute = 0xdecafbad
    return record

logging.setLogRecordFactory(record_factory)

使用這種模式,可以將多個工廠鏈接起來,隻要它們不覆蓋彼此的屬性或無意覆蓋上麵列出的標準屬性,就不會出現意外。

相關用法


注:本文由純淨天空篩選整理自python.org大神的英文原創作品 logging.LogRecord。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。