Logger

模块:polygraphy.logger

class LogMode(value)[source]

基类: IntEnum

指定应如何记录消息。

EACH = 0

每次都记录消息

ONCE = 1

仅记录消息一次。同一消息不会再次记录。

class SeverityTrie(severity_dict)[source]

基类: object

一个 trie,表示每个路径的日志详细程度。

get(path=None)[source]

获取给定路径的日志详细程度。

参数:

path (str) – 路径

返回:

日志详细程度。

返回类型:

int

class Logger(severity=20, colors=True, letter=True, timestamp=False, line_info=False)[source]

基类: object

全局日志记录接口。不要手动构造记录器。而是使用全局记录器 G_LOGGER

参数:
  • severity (Union[int, Dict[str, int]]) – 严重性级别低于此级别的消息将被忽略。可以通过提供路径到日志严重性级别的字典来在每个子模块/文件基础上指定此项。在这种情况下,使用 "" 来指示默认严重性级别。路径应相对于 polygraphy/ 目录。例如,polygraphy/backend 可以仅用 backend/ 指定。例如:{"": G_LOGGER.INFO, "backend/trt": G_LOGGER.VERBOSE} 这会在分配时转换为 SeverityTrie。默认为 G_LOGGER.INFO。

  • colors (bool) – 是否使用彩色输出。默认为 True。

  • letter (bool) – 是否在每个日志消息前添加一个字母来指示其严重性。默认为 True。

  • timestamp (bool) – 是否在日志输出中包含时间戳。默认为 False。

  • line_info (bool) – 是否在日志输出中包含文件和行号信息。默认为 False。

ULTRA_VERBOSE = -20

启用极度详细消息及更高级别

SUPER_VERBOSE = -10

启用非常详细消息及更高级别

EXTRA_VERBOSE = 0

启用额外详细消息及更高级别

VERBOSE = 10

启用详细消息及更高级别

INFO = 20

启用信息性消息及更高级别

START = 22

启用指示任务何时开始的消息及更高级别

FINISH = 28

启用指示任务何时完成的消息及更高级别

WARNING = 30

仅启用警告消息及更高级别

ERROR = 40

仅启用错误消息及更高级别

CRITICAL = 50

仅启用严重/致命错误消息及更高级别

property log_file

用于写入 Polygraphy 日志输出的日志文件路径。这不包括来自 Polygraphy 使用的库(如 TensorRT 或 ONNX-Runtime)的日志消息。

property module_severity

严重性级别低于此级别的消息将被忽略。可以通过提供路径到日志严重性级别的字典来在每个子模块/文件基础上指定此项。在这种情况下,使用 "" 来指示默认严重性级别。路径应相对于 polygraphy/ 目录。例如,polygraphy/backend 可以仅用 backend/ 指定。例如:{"": G_LOGGER.INFO, "backend/trt": G_LOGGER.VERBOSE} 这会在分配时转换为 SeverityTrie。默认为 G_LOGGER.INFO。

module_path(path)[source]

将给定路径转换为相对于 Polygraphy 根模块的路径。如果路径不是 Polygraphy 模块的一部分,则返回相对于公共前缀的路径。

参数:

path (str) – 路径

返回:

相对于 Polygraphy 根模块或公共前缀的路径。

返回类型:

str

register_callback(callback)[source]

向记录器注册一个回调,当日志记录严重性级别被修改时将调用该回调。回调保证在 register_callback 函数中至少被调用一次。

参数:

callback (Callable(SeverityTrie)) – 接受当前记录器严重性 trie 的回调。

indent(level=1)[source]

返回一个上下文管理器,该管理器将缩进指定数量的所有记录字符串。

参数:

level (int) – 缩进级别

verbosity(severity=50)[source]

返回一个上下文管理器,该管理器在其持续时间内临时更改记录器的严重性级别。

参数:

severity (Union[int, Dict[str, int]]) – 严重性级别低于此级别的消息将被忽略。可以通过提供路径到日志严重性级别的字典来在每个子模块/文件基础上指定此项。在这种情况下,使用 "" 来指示默认严重性级别。例如:{"": G_LOGGER.INFO, "backend/trt": G_LOGGER.VERBOSE} 默认为 Logger.CRITICAL,这将抑制所有消息。

log(message, severity, mode=LogMode.EACH, stack_depth=2, error_ok=False)[source]

将消息记录到 stdout。

参数:
  • message (Union[str, Callable() -> str]) – 字符串或可调用对象,返回要记录的消息字符串。

  • severity (int) – 记录此消息的严重性级别。如果严重性级别低于记录器的当前严重性级别,则消息将被抑制。在这种情况下,不会调用提供的可调用对象。

  • mode (LogMode) – 控制消息的记录方式。有关详细信息,请参阅 LogMode。

  • stack_depth (int) – 用于确定文件和行信息的堆栈深度。默认为 2。

  • error_ok (bool) – 是否抑制记录时遇到的错误。当此值为 True 时,如果发生错误,则不会记录消息,但记录器将恢复并继续执行。当为 False 时,记录器将重新引发异常。

ultra_verbose(message, mode=LogMode.EACH)[source]

使用 ULTRA_VERBOSE 严重性级别将消息记录到 stdout。

参数:
  • message (Union[str, Callable() -> str]) – 字符串或可调用对象,返回要记录的消息字符串。

  • mode (LogMode) – 控制消息的记录方式。有关详细信息,请参阅 LogMode。

super_verbose(message, mode=LogMode.EACH)[source]

使用 SUPER_VERBOSE 严重性级别将消息记录到 stdout。

参数:
  • message (Union[str, Callable() -> str]) – 字符串或可调用对象,返回要记录的消息字符串。

  • mode (LogMode) – 控制消息的记录方式。有关详细信息,请参阅 LogMode。

extra_verbose(message, mode=LogMode.EACH)[source]

使用 EXTRA_VERBOSE 严重性级别将消息记录到 stdout。

参数:
  • message (Union[str, Callable() -> str]) – 字符串或可调用对象,返回要记录的消息字符串。

  • mode (LogMode) – 控制消息的记录方式。有关详细信息,请参阅 LogMode。

verbose(message, mode=LogMode.EACH)[source]

使用 VERBOSE 严重性级别将消息记录到 stdout。

参数:
  • message (Union[str, Callable() -> str]) – 字符串或可调用对象,返回要记录的消息字符串。

  • mode (LogMode) – 控制消息的记录方式。有关详细信息,请参阅 LogMode。

info(message, mode=LogMode.EACH)[source]

使用 INFO 严重性级别将消息记录到 stdout。

参数:
  • message (Union[str, Callable() -> str]) – 字符串或可调用对象,返回要记录的消息字符串。

  • mode (LogMode) – 控制消息的记录方式。有关详细信息,请参阅 LogMode。

start(message, mode=LogMode.EACH)[source]

使用 START 严重性级别将消息记录到 stdout。

参数:
  • message (Union[str, Callable() -> str]) – 字符串或可调用对象,返回要记录的消息字符串。

  • mode (LogMode) – 控制消息的记录方式。有关详细信息,请参阅 LogMode。

finish(message, mode=LogMode.EACH)[source]

使用 FINISH 严重性级别将消息记录到 stdout。

参数:
  • message (Union[str, Callable() -> str]) – 字符串或可调用对象,返回要记录的消息字符串。

  • mode (LogMode) – 控制消息的记录方式。有关详细信息,请参阅 LogMode。

warning(message, mode=LogMode.EACH)[source]

使用 WARNING 严重性级别将消息记录到 stdout。

参数:
  • message (Union[str, Callable() -> str]) – 字符串或可调用对象,返回要记录的消息字符串。

  • mode (LogMode) – 控制消息的记录方式。有关详细信息,请参阅 LogMode。

error(message, mode=LogMode.EACH)[source]

使用 ERROR 严重性级别将消息记录到 stdout。

参数:
  • message (Union[str, Callable() -> str]) – 字符串或可调用对象,返回要记录的消息字符串。

  • mode (LogMode) – 控制消息的记录方式。有关详细信息,请参阅 LogMode。

critical(message, ExceptionType=None)[source]

使用 CRITICAL 严重性级别将消息记录到 stdout 并引发异常。

参数:
  • message (Union[str, Callable() -> str]) – 字符串或可调用对象,返回要记录的消息字符串。

  • ExceptionType (type) – 要引发的异常类型。默认为 PolygraphyException。

Raises:

ExceptionType

log_exception(func)[source]

修饰器,使函数中的异常被记录。这在异常被调用者捕获但仍应记录的情况下很有用。

G_LOGGER = <polygraphy.logger.logger.Logger object>

全局记录器。使用此记录器代替构造记录器