自定义记录器
自定义记录器
本主题介绍如何自定义来自云眼灰度发布(特性标帜)AB实验 Python SDK 的实验的日志信息,以帮助进行调试。
记录器记录有关实验的信息,以帮助你进行调试。可以自定义日志信息的发送位置以及跟踪的信息类型。
可以使用我们的SimpleLogger
实现 开箱即用。
为了改善您设置 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 值)的事件将被记录下来。
记录重要事件(例如,决策已启动、决策成功、跟踪已启动和跟踪成功)。这有助于显示 API 调用的生命周期。
伐木。调试
将记录与可帮助我们调试问题的错误相关的任何信息(例如,灰度发布(特性标帜)未运行、用户未包含在标帜规则中)。
伐木。未设置
创建记录器时设置的级别。当记录器是根记录器时,导致处理所有消息(当记录器是非根记录器时,将委派给父记录器)。
参见
记录器返回:
- 软件开发工具包生命周期
- 标帜决策消息
还可以在返回的决策对象的“原因”字段中查看标帜决策消息。有关更多信息,请参阅云眼决策
源文件
包含 Python 实现的语言/平台源文件 eyeofcloud.py。