美文网首页
程序异常信息收集(建议在程序启动时添加)

程序异常信息收集(建议在程序启动时添加)

作者: 豆豆哥哥 | 来源:发表于2019-08-07 11:04 被阅读0次

程序异常信息收集(建议在程序启动时添加)
如果程序直接启动就会崩溃的话:
在AppDelegate.m中启动APP的时候直接添加代码

UncaughtExceptionHandler(NSException* exception)

就会在程序一开始奔溃的时候收集异常信息
例如:刚开始log日志文件不存在的话
程序直接崩溃.
如果不在AppDelegate.m添加

UncaughtExceptionHandler(NSException* exception)

则收集不到此次错误信息
如果已经存在log文件则可以收集到异常信息

@param exception 处理异常信息的类//即为崩溃的信息的类  需要我们自己保存
*/
void UncaughtExceptionHandler(NSException* exception)
{
//
//如果程序出现崩溃,就会错误名称,原因,以及调用栈信息,写入到"date.log"日志中
//
NSString* name = [exception name];//异常发生时的错误名称
NSString* reason = [exception reason];//异常发生的原因
NSArray* symbols = [exception callStackSymbols]; // 异常发生时的调用栈
NSMutableString* strSymbols = [[NSMutableString alloc]init];
for (NSString* item in symbols)
{
[strSymbols appendString:item ];
[strSymbols appendString:@"\r\n"];//将调用栈拼成输出日志的字符串
}
//
//将异常信息发生的时间,名称,原因,调用栈拼接成字符串
//
NSString *dateStr = [[UMLog sharedInstance] getFormatDateString:@"yyyy-MM-dd HH:mm:ss"];//获取当前时间字符串
NSString *crashString = [NSString stringWithFormat:@"<- %@ ->[ Uncaught Exception ]\r\nName: %@, Reason: %@\r\n[ Fe Symbols Start ]\r\n%@[ Fe Symbols End ]\r\n\r\n", dateStr, name, reason, strSymbols];//拼接异常信息
//公司的一个保存log日志
[[UMLog sharedInstance] writeLogToFile:UMLOG_MODULE_CRASH logString:crashString];
[[UMLog sharedInstance] close];
}

其结果就是这样的:


相关文章

网友评论

      本文标题:程序异常信息收集(建议在程序启动时添加)

      本文链接:https://www.haomeiwen.com/subject/cnnsjxtx.html