当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。