引言
使用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