自定义记录器

云眼About 2 min

自定义记录器

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

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

在 Swift SDK 中,可以使用我们的默认记录器并配置 .可以使用任何日志级别对其进行初始化,并在创建实例时将其传入。还可以实现自己的记录器,并在创建实例时将其传递到构建器中。请参阅下面的代码示例。EyeofcloudLogLevel``EyeofcloudClient``EyeofcloudClient

Swift目标-C

class CustomLogger: OPTLogger { public static var logLevel: EyeofcloudLogLevel = .info required init() { } public func log(level: EyeofcloudLogLevel, message: String) { if level.rawValue <= CustomLogger.logLevel.rawValue { print("\(message)") } } } // create EyeofcloudClient with a custom Logger let customLogger = CustomLogger() eyeofcloud = EyeofcloudClient(sdkKey: "<Your_SDK_Key>", logger: customLogger, defaultLogLevel:.debug)

@interface CustomLogger : NSObject <OPTLogger> + (enum EyeofcloudLogLevel)logLevel; + (void)setLogLevel:(enum EyeofcloudLogLevel)value; - (nonnull instancetype)init; - (void)logWithLevel:(enum EyeofcloudLogLevel)level message:(NSString *)message; @end @implementation CustomLogger -(instancetype)init { self = [super init]; if (self != nil) { // } return self; } - (void)logWithLevel:(enum EyeofcloudLogLevel)level message:(NSString * _Nonnull)message { if (level <= CustomLogger.logLevel) { NSLog(@"%@", message); } } static enum EyeofcloudLogLevel logLevel = EyeofcloudLogLevelInfo; +(enum EyeofcloudLogLevel)logLevel { return logLevel; } +(void)setLogLevel:(enum EyeofcloudLogLevel)value { logLevel = value; } @end // create EyeofcloudClient with a custom Logger CustomLogger *customLogger = [[CustomLogger alloc] init]; self.eyeofcloud = [[EyeofcloudClient alloc] initWithSdkKey:@"<Your_SDK_Key>" logger:customLogger eventDispatcher:nil userProfileService:nil periodicDownloadInterval:5*60 defaultLogLevel:EyeofcloudLogLevelInfo];

日志级别

下表列出了 SDK 的日志级别:

日志级别

解释

EyeofcloudLogLevel.error

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

EyeofcloudLogLevel.warning

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

EyeofcloudLogLevel.infoopen in new window

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

EyeofcloudLogLevel.debug

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

源文件

包含 Swift 实现的语言/平台源文件是 EyeofcloudClient.swiftopen in new window

Last update:
Contributors: “zhangweixue”,zhangweixue