自定义记录器
May 11, 2023About 2 min
自定义记录器
本主题介绍如何自定义来自云眼特性标帜(Feature Flag)AB实验 Swift SDK 的实验的日志信息,以帮助进行调试。
记录器记录有关实验的信息,以帮助你进行调试。可以自定义日志信息的发送位置以及跟踪的信息类型。
在 Swift SDK 中,可以使用我们的默认记录器并配置EyeofcloudLogLevel
.可以使用任何日志级别对其进行初始化,并在创建EyeofcloudClient
实例时将其传入。还可以实现自己的记录器,并在创建EyeofcloudClient
实例时将其传递到构建器中。请参阅下面的代码示例。
Swift
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)
Object-C
@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
记录阻止特性标帜(Feature Flag)正常运行的事件(例如,初始化中的无效数据文件和无效的标帜键)。用户可以采取措施进行更正。
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.info | 记录重要事件(例如,决策已启动、决策成功、跟踪已启动和跟踪成功)。这有助于显示 API 调用的生命周期。 |
EyeofcloudLogLevel.debug | 将记录与可帮助我们调试问题的错误相关的任何信息(例如,灰度标帜未运行、用户未包含在标帜规则中)。 |
源文件
包含 Swift 实现的语言/平台源文件是 EyeofcloudClient.swift。