Log 配置¶
Log 初始化配置¶
FTLoggerConfig *loggerConfig = [[FTLoggerConfig alloc] init];
loggerConfig.enableCustomLog = YES;
loggerConfig.printCustomLogToConsole = YES;
loggerConfig.enableLinkRumData = YES;
loggerConfig.logLevelFilter = @[@(FTStatusError), @(FTStatusCritical)];
loggerConfig.discardType = FTDiscardOldest;
[[FTSDKAgent sharedInstance] startLoggerWithConfigOptions:loggerConfig];
let loggerConfig = FTLoggerConfig()
loggerConfig.enableCustomLog = true
loggerConfig.enableLinkRumData = true
loggerConfig.printCustomLogToConsole = true
loggerConfig.logLevelFilter = [NSNumber(value: FTLogStatus.statusError.rawValue), NSNumber(value: FTLogStatus.statusCritical.rawValue)]
loggerConfig.discardType = .discardOldest
FTSDKAgent.sharedInstance().startLogger(withConfigOptions: loggerConfig)
| 属性 | 类型 | 必须 | 含义 |
|---|---|---|---|
sampleRate |
int |
否 | 采样率。取值范围 [0,100],0 表示不采集,100 表示全采集,默认值 100 |
enableCustomLog |
BOOL |
否 | 是否上传自定义 Log,默认 NO |
logLevelFilter |
NSArray |
否 | 设置要采集的自定义 Log 状态数组,默认全采集 |
enableLinkRumData |
BOOL |
否 | 是否与 RUM 数据关联,默认 NO |
discardType |
FTLogCacheDiscard |
否 | 设置日志达到限制上限以后的日志丢弃规则,默认 FTDiscard |
printCustomLogToConsole |
BOOL |
否 | 设置是否将自定义日志输出到控制台,默认 NO |
globalContext |
NSDictionary |
否 | 添加 Log 自定义标签,添加规则请查阅 自定义标签使用 |
Logger 日志打印¶
目前日志内容限制为 30 KB,字符超出部分会进行截断处理。
使用方法¶
/// 添加 info 类型自定义日志
-(void)info:(NSString *)content property:(nullable NSDictionary *)property;
/// 添加 warning 类型自定义日志
-(void)warning:(NSString *)content property:(nullable NSDictionary *)property;
/// 添加 error 类型自定义日志
-(void)error:(NSString *)content property:(nullable NSDictionary *)property;
/// 添加 critical 类型自定义日志
-(void)critical:(NSString *)content property:(nullable NSDictionary *)property;
/// 添加 ok 类型自定义日志
-(void)ok:(NSString *)content property:(nullable NSDictionary *)property;
open class FTLogger : NSObject, FTLoggerProtocol {}
public protocol FTLoggerProtocol : NSObjectProtocol {
optional func info(_ content: String, property: [AnyHashable : Any]?)
optional func warning(_ content: String, property: [AnyHashable : Any]?)
optional func error(_ content: String, property: [AnyHashable : Any]?)
optional func critical(_ content: String, property: [AnyHashable : Any]?)
optional func ok(_ content: String, property: [AnyHashable : Any]?)
}
日志等级¶
代码示例¶
// 方法一:通过 FTSDKAgent
// 注意:需要保证在使用的时候 SDK 已经初始化成功,否则在测试环境会断言失败从而崩溃。
[[FTSDKAgent sharedInstance] logging:@"test_custom" status:FTStatusInfo];
// 方法二:通过 FTLogger(推荐)
// SDK 如果没有初始化成功,调用 FTLogger 中方法添加自定义日志会失败,但不会有断言失败崩溃问题。
[[FTLogger sharedInstance] info:@"test" property:@{@"custom_key":@"custom_value"}];
自定义日志输出到控制台¶
设置 printCustomLogToConsole = YES,开启将自定义日志输出到控制台,将会在 Xcode 调试控制台看到以下格式的日志:
2023-06-29 13:47:56.960021+0800 App[64731:44595791]:os_log日志输出的标准前缀[MACOS APP]:用来区分 SDK 输出自定义日志的前缀[INFO]:自定义日志的等级content:自定义日志内容{K=V,...,Kn=Vn}:自定义属性