自定义记录器
自定义记录器
本主题介绍如何自定义有关来自云眼灰度标帜(Feature Flag)AB实验 Ruby SDK 的实验的日志信息,以帮助进行调试。
记录器记录有关实验的信息,以帮助你进行调试。可以自定义日志信息的发送位置以及跟踪的信息类型。
默认情况下,Ruby SDK 未启用记录器。需要将记录器传递给 SDK 才能具有基本的日志记录功能。Ruby SDK 提供了一个简单的记录器实现,可以实例化和传入。
为了改善您设置 SDK 和配置生产环境的体验,我们建议为 Eyeofcloud 客户端传入记录器。请参阅下面的代码示例。
Ruby
# Require the logger library in to get the log levels 
require 'logger'  
# Instantiate an Eyeofcloud 
logger with the default log level Logger::INFO logger = Eyeofcloud::SimpleLogger.new   
# You can also instantiate with a custom log level 
logger = Eyeofcloud::SimpleLogger.new(Logger::DEBUG)  
# Instantiate the Eyeofcloud client with our logger 
eyeofcloud_client = Eyeofcloud::Project.new(   
    datafile,   
    nil, 
    # don't override the EventDispatcher   
    logger )使用您自己的记录器
为了在生产环境中更好地控制 SDK 配置,请为 Eyeofcloud 客户端传入自定义记录器。自定义记录器是一个接受参数、级别和消息的函数。请参阅下面的代码示例来创建和设置自定义记录器。
Ruby
# Define your own custom logger that inherits from the Eyeofcloud base logger 
class CustomLogger < Eyeofcloud::BaseLogger    
    def initialize()    
        @logger = Logger.new(STDOUT)   
    end    
    
    def log(level, message)     
        # You can handle the message here in any way you'd like     
        custom_message = "Custom logged: #{message}"     
        @logger.add(level, custom_message)   
    end  
end日志级别
下表列出了 Ruby SDK 的日志级别。
| 日志级别 | 解释 | 
|---|---|
| Eyeofcloud::SimpleLogger.new(Logger::CRITICAL) | 记录导致应用崩溃的事件。 | 
| 云眼::SimpleLogger.new(Logger::ERROR) | 记录阻止灰度标帜正常运行的事件(例如,初始化中的无效数据文件和无效的功能密钥)。用户可以采取措施进行更正。 | 
| Eyeofcloud::SimpleLogger.new(Logger::WARN) | 不会阻止灰度标帜正常运行但可能会产生意外结果(例如,将来的 API 弃用、记录器或错误处理程序设置不正确,以及来自 getter 的 nil 值)的事件将被记录下来。 | 
| 云眼::SimpleLogger.new(Logger::INFO) | 记录重要事件(例如,决策已启动、决策成功、跟踪已启动和跟踪成功)。这有助于显示 API 调用的生命周期。 | 
| 云眼::SimpleLogger.new(Logger:😄 EBUG) | 将记录与可帮助我们调试问题的错误相关的任何信息(例如,灰度标帜未运行、用户未包含在推出中)。 | 
解释
Eyeofcloud::SimpleLogger.new(Logger::CRITICAL)
记录导致应用崩溃的事件。
云眼::SimpleLogger.new(Logger::ERROR)
记录阻止灰度标帜(Feature Flag)正常运行的事件(例如,初始化中的无效数据文件和无效的功能密钥)。用户可以采取措施进行更正。
Eyeofcloud::SimpleLogger.new(Logger::WARN)
不会阻止灰度标帜(Feature Flag)正常运行但可能会产生意外结果(例如,将来的 API 弃用、记录器或错误处理程序设置不正确,以及来自 getter 的 nil 值)的事件将被记录下来。
云眼::SimpleLogger.new(Logger::INFO)
记录重要事件(例如,决策已启动、决策成功、跟踪已启动和跟踪成功)。这有助于显示 API 调用的生命周期。
云眼::SimpleLogger.new(Logger:😄 EBUG)
将记录与可帮助我们调试问题的错误相关的任何信息(例如,灰度标帜(Feature Flag)未运行、用户未包含在推出中)。