本文档介绍移动监控 iOS SDK 提供的崩溃分析 API,包括自定义日志、自定义维度、自定义异常。
1. 获取崩溃分析实例
获取崩溃分析EAPMCrashAnalysis实例,该实例是一个单例对象。
接口定义
Object C
Swift
+ (instancetype)crashAnalysis;
class func crashAnalysis() -> Self
代码示例
Object C
Swift
#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
EAPMCrashAnalysis *crashAnalysis = [EAPMCrashAnalysis crashAnalysis];
#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
let crashAnalysis = CrashAnalysis.crashAnalysis()
2. 自定义日志
通过崩溃分析EAPMCrashAnalysis日志接口,可以增加自定义日志,该日志会跟随崩溃信息一起上报。
接口定义
Object C
Swift
/**
* 记录自定义日志
*
* @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 | 自定义日志格式化字符串,格式化之后超出长度会被截断 |
代码示例
Object C
Swift
#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最多记录64个自定义维度。
接口定义
Object C
Swift
/**
* 设置自定义维度的键值对
*
* @param value 值
* @param key 唯一键
*/
- (void)setCustomValue:(nullable id)value forKey:(NSString *)key;
/**
* 批量设置自定义维度的键值对
*
* @param keysAndValues 键值对
*/
- (void)setCustomKeysAndValues:(NSDictionary *)keysAndValues;
/**
* 设置自定义维度的键值对
*
* @param value 值
* @param key 唯一键
*/
func setCustomValue(value: Any?, forKey key: String)
/**
* 批量设置自定义维度的键值对
*
* @param keysAndValues 键值对
*/
func setCustomKeysAndValues(keysAndValues: [String: Any])
自定义维度参数说明
参数 | 类型 | 是否必填 | 长度范围 | 说明 |
参数 | 类型 | 是否必填 | 长度范围 | 说明 |
value | id | 否 | 0~128 | 自定义维度的值,调用其自身description方法转换为字符串 |
key | NSString | 是 | 1~128 | 自定义维度的键 |
代码示例
Object C
Swift
#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
[[EAPMCrashAnalysis crashAnalysis] setCustomValue:@"value" forKey:@"key"];
[[EAPMCrashAnalysis crashAnalysis] setCustomKeysAndValues:@{
@"key1":@"value1",
@"key2":@"value2",
}];
#import "AlicloudApmCrashAnalysis/AlicloudApmCrashAnalysis.h"
let crashAnalysis = CrashAnalysis.crashAnalysis()
crashAnalysis.setCustomValue("value", forKey: "key")
crashAnalysis.setCustomKeysAndValues([
"key1": "value1",
"key2": "value2"
])
4. 自定义异常
通过崩溃分析EAPMCrashAnalysis异常接口,可以记录自定义异常,SDK最多记录8条自定义异常。
接口定义
Object C
Swift
/**
* 记录异常对象
*
* @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 |
代码示例
Object C
Swift
#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",
])
该文章对您有帮助吗?
- 本页导读 (0)
- 1. 获取崩溃分析实例
- 接口定义
- 代码示例
- 2. 自定义日志
- 接口定义
- 自定义日志参数说明
- 代码示例
- 3. 自定义维度
- 接口定义
- 自定义维度参数说明
- 代码示例
- 4. 自定义异常
- 接口定义
- 自定义异常参数说明
- 代码示例