跳转至

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]?)
}

日志等级

typedef NS_ENUM(NSInteger, FTLogStatus) {
    FTStatusInfo = 0,
    FTStatusWarning,
    FTStatusError,
    FTStatusCritical,
    FTStatusOk,
};
public enum FTLogStatus : Int, @unchecked Sendable {
    case statusInfo = 0
    case statusWarning = 1
    case statusError = 2
    case statusCritical = 3
    case statusOk = 4
}

代码示例

// 方法一:通过 FTSDKAgent
// 注意:需要保证在使用的时候 SDK 已经初始化成功,否则在测试环境会断言失败从而崩溃。
[[FTSDKAgent sharedInstance] logging:@"test_custom" status:FTStatusInfo];

// 方法二:通过 FTLogger(推荐)
// SDK 如果没有初始化成功,调用 FTLogger 中方法添加自定义日志会失败,但不会有断言失败崩溃问题。
[[FTLogger sharedInstance] info:@"test" property:@{@"custom_key":@"custom_value"}];
// 方法一:通过 FTSDKAgent
FTSDKAgent.sharedInstance().logging("contentStr", status: .statusInfo, property: ["custom_key":"custom_value"])

// 方法二:通过 FTLogger(推荐)
FTLogger.shared().info("contentStr", property: ["custom_key":"custom_value"])

自定义日志输出到控制台

设置 printCustomLogToConsole = YES,开启将自定义日志输出到控制台,将会在 Xcode 调试控制台看到以下格式的日志:

2023-06-29 13:47:56.960021+0800 App[64731:44595791] [MACOS APP] [INFO] content ,{K=V,...,Kn=Vn}
  • 2023-06-29 13:47:56.960021+0800 App[64731:44595791]os_log 日志输出的标准前缀
  • [MACOS APP]:用来区分 SDK 输出自定义日志的前缀
  • [INFO]:自定义日志的等级
  • content:自定义日志内容
  • {K=V,...,Kn=Vn}:自定义属性

文档评价

文档内容是否对您有帮助? ×