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