• iOS 打印日志的保存 (一)


      当我们真机调试app的时候,作为开发人员的我们可以很方便的通过Xcode的debug area查看相关的打印信息。而测试人员在对app进行测试的时候,一旦出现了crash,这时我们就需要把相关的打印信息保存下来,

    以便后面进行查看追踪crash原因。在这里我们可以将打印信息写入沙盒系统中。不多说了,直接上代码。

     1 - (void)redirectNSlogToDocumentFolder
     2 {
     3     if (isatty(STDOUT_FILENO))
     4     {
     5         NSLog(@"真机调试,无需将打印信息写入文件.
    ");
     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”文件夹。
    直接拖出放在桌面使用文本编辑打开即可查看相应的打印信息了。

  • 相关阅读:
    css选择器解析规则
    swiper轮播图包含视频或图片
    css实现文字选中变色
    swiper鼠标滚轮事件
    C语言中,关于相除的问题
    输入测试字符型数据的组数,再输入字符型数据,排坑
    C语言中,字符型数字与常数型数字的加减实现
    C语言的指针用法:输入一堆字符,把非字母的删去。
    C语言中倒序输出你输入的数。
    C语言中,嵌套的if语句的一些经验...
  • 原文地址:https://www.cnblogs.com/howcoldtohowtocode/p/3824452.html
Copyright © 2020-2023  润新知