iOS小知识: 使用bugly上报自定义错误信息进行数据监控

2,697 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

引言

使用bugly上报自定义错误信息的应用场景:调用接口时如果返回了错误时需要记录下请求报文和设备号等数据,实时发送到控制台查看。

I、自定义错误信息监控

需求:调用接口时返回了错误时记录下请求报文(String格式)、设备号数据,实时发送到控制台查看

1.1 bugly上报自定义错误(iOS)

/**
 *    @brief 上报自定义错误
 *
 *    @param category    类型(Cocoa=3,CSharp=4,JS=5,Lua=6)
 *    @param aName       名称
 *    @param aReason     错误原因
 *    @param aStackArray 堆栈
 *    @param info        附加数据
 *    @param terminate   上报后是否退出应用进程
 */
+ (void)reportExceptionWithCategory:(NSUInteger)category
                               name:(NSString *)aName
                             reason:(NSString *)aReason
                          callStack:(NSArray *)aStackArray
                          extraInfo:(NSDictionary *)info
                       terminateApp:(BOOL)terminate;


[Bugly reportExceptionWithCategory:3 name:exception.name reason:[NSString stringWithFormat:@"%@  崩溃位置:%@",exception.reason,exception.userInfo[@"location"]] callStack:@[exception.userInfo[@"callStackSymbols"]] extraInfo:exception.userInfo terminateApp:NO];    }];

1.2 bugly上报自定义错误(android)

  • 上报固定日志信息
//需求:应用调用接口时如果返回了错误,这时需要记录下请求报文(String格式)和设备号等数据,实时发送到控制台查看。
CrashReport.postCatchedException(new Throwable("日志内容:"));

  • 使用Exception进行数据上报
CrashReport.postCatchedException(e); 

  • 查看自定义错误

再 bugly 后台对应的app ->异常上报 - 错误分析中查看相应的日志信息,也可以现在高级搜索

在这里插入图片描述 在这里插入图片描述

1.3 Q&A

如果+load方法中的代码出现了crash,crash监控SDK(bugly)能监控到? 答: 不会

因为在程序执行 Main 函数之前,就会执行 load 方法和 clang attribute 的 constructor 修饰函数 因此+load方法中的代码出现了crash时,还没创建 the application object 和 the application delegate 及 sets up the event cycle.就更没执行- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(nullable NSDictionary<UIApplicationLaunchOptionsKey, id> *)launchOptions API_AVAILABLE(ios(3.0)); 初始化bugly

see also

更多资讯和服务请关注#小程序:iOS逆向,只为你呈现有价值的信息,专注于移动端技术研究领域。

bugly