自定义记录器

云眼About 3 min

自定义记录器

本主题介绍如何自定义来自云眼灰度发布(特性标帜)AB实验 Python SDK 的实验的日志信息,以帮助进行调试。

记录器记录有关实验的信息,以帮助你进行调试。可以自定义日志信息的发送位置以及跟踪的信息类型。

可以使用我们的SimpleLogger 实现open in new window 开箱即用。

为了改善您设置 SDK 和配置生产环境的体验,我们建议为 Eyeofcloud 客户端传入记录器。请参阅下面的代码示例。

Python

import logging from eyeofcloud import logger from eyeofcloud import eyeofcloud # To set a log level choose one of the following: # INFO: logging.INFO # NOTSET: logging.NOTSET # DEBUG: logging.DEBUG # WARNING: logging.WARNING # ERROR: logging.ERROR # CRITICAL: logging.CRITICAL # To define a minimum logging level pass it in during initialization. # The example below shows a minimum logging level of INFO. eyeofcloud_client = eyeofcloud.Eyeofcloud(datafile, logger=logger.SimpleLogger(min_level=logging.INFO))

为了在生产环境中更好地控制 SDK 配置,请为 Eyeofcloud 客户端传入自定义记录器。自定义记录器是一个接受参数、级别和消息的函数。请参阅下面的代码示例来创建和设置自定义记录器。

Python

import logging def get_custom_logger(name, level=logging.INFO): """ Example of a custom logger. This function takes in two parameters: name and level and logs to console. The place to log in this case is defined by the handler which we set to logging.StreamHandler(). Args: name: Name for the logger. level: Minimum level for messages to be logged """ logger = logging.getLogger(name) logger.setLevel(level) if not logger.handlers: handler = logging.StreamHandler() formatter = logging.Formatter("Eyeofcloud({}): %(levelname)s %(message)s".format(name)) handler.setFormatter(formatter) logger.addHandler(handler) return logger # Here we initialize the SDK with the custom logger. eyeofcloud_client = eyeofcloud.Eyeofcloud(datafile, logger=get_custom_logger('my_eyeofcloud_logger'))

日志级别

下表列出了 Python SDK 的日志级别。

日志级别

解释

伐木。危急

记录导致应用崩溃的事件。

伐木。错误

记录阻止灰度发布(特性标帜)正常运行的事件(例如,初始化中的无效数据文件和无效的标帜键)。用户可以采取措施进行更正。

伐木。警告

不会阻止灰度发布(特性标帜)正常运行但可能会产生意外结果(例如,将来的 API 弃用、记录器或错误处理程序设置不正确,以及来自 getter 的 nil 值)的事件将被记录下来。

logging.INFOopen in new window

记录重要事件(例如,决策已启动、决策成功、跟踪已启动和跟踪成功)。这有助于显示 API 调用的生命周期。

伐木。调试

将记录与可帮助我们调试问题的错误相关的任何信息(例如,灰度发布(特性标帜)未运行、用户未包含在标帜规则中)。

伐木。未设置

创建记录器时设置的级别。当记录器是根记录器时,导致处理所有消息(当记录器是非根记录器时,将委派给父记录器)。

参见

记录器返回:

  • 软件开发工具包生命周期
  • 标帜决策消息

还可以在返回的决策对象的“原因”字段中查看标帜决策消息。有关更多信息,请参阅云眼决策

源文件

包含 Python 实现的语言/平台源文件 eyeofcloud.pyopen in new window

Last update:
Contributors: “zhangweixue”,zhangweixue