捕捉错误日志 向服务器上传错误日志

本文介绍了一种在iOS应用中捕获并处理未捕获异常的方法,通过自定义异常处理函数来收集设备信息、异常原因及堆栈信息,并保存为日志文件,以便后续分析与修复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

捕捉异常类头文件.h文件

///抓捕异常处理

void uncaughtExceptionHandler(NSException *exception);

捕捉异常实现文件.m文件

///抓捕异常处理

void uncaughtExceptionHandler(NSException *exception)

{

    //手机型号

    NSString *deviceName = [DeviceTool getPhoneModel];

    //手机系统版本

    NSString *deviceSystemVersion = [DeviceTool getSystemVersion];

    //App 版本号

    NSString *appVersion = [DeviceTool getAppVersion];

    

    // 异常的堆栈信息

    NSArray *stackArray = [exception callStackSymbols];

    

    // 出现异常的原因

    NSString *reason = [exception reason];

    

    // 异常名称

    NSString *name = [exception name];

    

    NSString *exceptionInfo = [NSString stringWithFormat:@"Device name:%@ SystemVersion:%@  AppVersion:%@ \nException reason:%@\nException name:%@\nException stack:%@",deviceName,deviceSystemVersion,appVersion,name, reason, stackArray];

    

    NSMutableArray *tmpArr = [NSMutableArray arrayWithArray:stackArray];

    

    [tmpArr insertObject:reason atIndex:0];

    

    //保存到本地  --  当然你可以在下次启动的时候,上传这个log

    NSLog(@"错误日志路径%@",Crash_Error_Path);

    [exceptionInfo writeToFile:Crash_Error_Path  atomically:YES encoding:NSUTF8StringEncoding error:nil];

    //在这里发送网络请求发送错误日志字符串,从服务器后台就可以看到错误日志

    [self requestServerError];

}

 

//记得在应用程序启动时初始化 在(appDelegate.m)

/*抓捕异常的处理*/

    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);

 

转载于:https://www.cnblogs.com/tryFighting/p/8183912.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值