首页 > 代码库 > iOS 打印日志的保存 (一)
iOS 打印日志的保存 (一)
当我们真机调试app的时候,作为开发人员的我们可以很方便的通过Xcode的debug area查看相关的打印信息。而测试人员在对app进行测试的时候,一旦出现了crash,这时我们就需要把相关的打印信息保存下来,
以便后面进行查看追踪crash原因。在这里我们可以将打印信息写入沙盒系统中。不多说了,直接上代码。
1 - (void)redirectNSlogToDocumentFolder 2 { 3 if (isatty(STDOUT_FILENO)) 4 { 5 NSLog(@"真机调试,无需将打印信息写入文件.\n"); 6 return; 7 } 8 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 9 NSString *documentDirectory = [paths objectAtIndex:0];10 NSString *fileName = [NSString stringWithFormat:@"PrintfInfo.log"];11 NSString *logFilePath = [documentDirectory stringByAppendingPathComponent:fileName];12 // 先删除已经存在的文件13 NSFileManager *defaultManager = [NSFileManager defaultManager];14 [defaultManager removeItemAtPath:logFilePath error:nil];15 16 // 将log输入到文件17 freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);18 freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);19 }
同时我们在app启动 didFinishLaunchingWithOptions 这个函数中调用这个方法。
1 //--------------------- 将打印信息写入沙盒文件中 --------------------//2 UIDevice *device = [UIDevice currentDevice];3 if (![[device model] isEqualToString:@"iPhone Simulator"])4 {5 // 开始保存日志文件6 [self redirectNSlogToDocumentFolder];7 }8 //--------------------------------------------------------------//
测试人员可以去apple官网下载windows版iTunes,连接电脑后,打开iTunes后点击右上角的iPhone。在“应用程序”中找到自己的app,在其对应的文稿中可以找到“PrintfInfo.log”文件夹。
直接拖出放在桌面使用文本编辑打开即可查看相应的打印信息了。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。