本文档介绍移动监控 iOS SDK 提供的崩溃分析 API,包括自定义日志、自定义维度、自定义异常。
1. 获取崩溃分析实例
获取崩溃分析EAPMCrashAnalysis实例,该实例是一个单例对象。
接口定义
+ (instancetype)crashAnalysis;
class func crashAnalysis() -> Self
代码示例
#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
EAPMCrashAnalysis *crashAnalysis = [EAPMCrashAnalysis crashAnalysis];
#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
let crashAnalysis = CrashAnalysis.crashAnalysis()
2. 自定义日志
通过崩溃分析EAPMCrashAnalysis日志接口,可以增加自定义日志,该日志会跟随崩溃信息一起上报。
接口定义
/**
* 记录自定义日志
*
* @param msg 要记录的消息
*/
- (void)log:(NSString *)msg;
/**
* 记录自定义日志
*
* @param format 字符串格式
* @param ... 格式替换参数
*/
- (void)logWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1, 2);
/**
* 记录自定义日志
*
* @param msg 要记录的消息
*/
func log(msg: String)
自定义日志参数说明
参数 | 类型 | 是否必填 | 长度范围 | 说明 |
msg | NSString | 是 | 1~64000 | 自定义日志消息,超出长度会被截断 |
format | NSString | 是 | 1~64000 | 自定义日志格式化字符串,格式化之后超出长度会被截断 |
代码示例
#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
[[EAPMCrashAnalysis crashAnalysis] log:@"custome log"];
[[EAPMCrashAnalysis crashAnalysis] logWithFormat:@"This is my custom_value=%@", @"custom_value"];
#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
let crashAnalysis = CrashAnalysis.crashAnalysis()
crashAnalysis.log("custome log")
3. 自定义异常
通过崩溃分析EAPMCrashAnalysis异常接口,可以记录自定义异常,SDK最多记录8条自定义异常。
接口定义
/**
* 记录异常对象
*
* @param error 异常对象
*/
- (void)recordError:(NSError *)error;
/**
* 记录异常对象
*
* @param error 异常对象
* @param userInfo 附加键值对
*/
- (void)recordError:(NSError *)error
userInfo:(nullable NSDictionary<NSString *, id> *)userInfo;
/**
* 记录异常对象
*
* @param error 异常对象
*/
fun record(error: NSError)
/**
* 记录异常对象
*
* @param error 异常对象
* @param userInfo 附加键值对
*/
func record(error: NSError, userInfo: [String: Any]?)
自定义异常参数说明
参数 | 类型 | 是否必填 | 说明 |
error | NSError | 是 | 异常对象 |
userInfo | NSDictionary<NSString *, id> | 否 | 附加键值对,最多64条键值对,key&value长度均不能超过128 |
代码示例
#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
NSError *error = [NSError errorWithDomain:@"customError" code:10001 userInfo:@{@"errorInfoKey":@"errorInfoValue"}];
[[EAPMCrashAnalysis crashAnalysis] recordError:error userInfo:@{
@"key1":@"value1",
@"key2":@"value2",
}];
#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
let crashAnalysis = CrashAnalysis.crashAnalysis()
let error = NSError(
domain: "customError",
code: 10001,
userInfo: [
"errorInfoKey": "errorInfoValue",
]
)
crashAnalysis.record(error: error, userInfo: [
"key": "value",
])
该文章对您有帮助吗?