美文网首页
将NSLog打印的日志保存在沙盒中

将NSLog打印的日志保存在沙盒中

作者: 14号孤独患者 | 来源:发表于2016-11-14 16:56 被阅读0次

保存日志到手机:
1、将下面的代码加到Appdelegate里,在didFinshLunch中调用
2、手机连接到Mac,在Xcode中Window—》Device —》选中当前设备和app 在下面选择DownLoadContainer

- (void)redirectNSLogToDocumentFolder
{
    //如果已经连接Xcode调试则不输出到文件
//    if(isatty(STDOUT_FILENO)) {
//        return;
//    }
    
    UIDevice *device = [UIDevice currentDevice];
    if([[device model] hasSuffix:@"Simulator"]){ //在模拟器不保存到文件中
        return;
    }
    
    //将NSlog打印信息保存到Document目录下的Log文件夹下
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *logDirectory = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"Log"];
    
    NSFileManager *fileManager = [NSFileManager defaultManager];
    BOOL fileExists = [fileManager fileExistsAtPath:logDirectory];
    if (!fileExists) {
        [fileManager createDirectoryAtPath:logDirectory  withIntermediateDirectories:YES attributes:nil error:nil];
    }
    
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; //每次启动后都保存一个新的日志文件中
    NSString *dateStr = [formatter stringFromDate:[NSDate date]];
    NSString *logFilePath = [logDirectory stringByAppendingFormat:@"/%@.log",dateStr];
    
    // 将log输入到文件
    freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);
    freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);
    
    //未捕获的Objective-C异常日志
//    NSSetUncaughtExceptionHandler (&UncaughtExceptionHandler);
}

相关文章

  • 将NSLog打印的日志保存在沙盒中

    保存日志到手机:1、将下面的代码加到Appdelegate里,在didFinshLunch中调用2、手机连接到Ma...

  • 关于沙盒存储的基础使用

    存储路径可用NSLog打印,然后回到左面可用快捷键 shift+command+g前往到存储的文件夹 读取沙盒中存...

  • 07-06(如何找到沙盒里面的文件)

    NSLog(@"沙盒路径是%@", NSHomeDirectory());//打印出沙盒路径.然后:Finder-...

  • 《iOS调试专用》手机端日志控制台

    点击下载demo将项目中所有使用NSLog打印的日志,输出到手机端日志控制台查看,具体如下图所示:

  • iOS Log打印

    简述 iOS调试中打印日志是一种比较常见的手段,一般都是使用系统的打印日志的方法NSLog,但是这种打印日志的方法...

  • IOS自定义日志Log

    //DEBUG 模式下打印日志,当前行#ifdefDEBUG#defineDLog(fmt,...)NSLog((...

  • iOS - Description

    自定义 po 打印,print & NSLog 类的打印输出 description - print 日志输出 d...

  • iOS之文件存储

    将字典存储到沙盒中(文件名后缀.plist) 从沙盒中读取字典数据 删除沙盒文件

  • Xcode最好用的日志打印方法

    一般打印日志都是用的系统自带的NSLog来打印的,假如项目做完了,要上线了,这些打印的日志就会很浪费性能,网上有很...

  • shell脚本-Mac批量修改文件

    具体问题描述: 删除代码源文件中采用NSLog打印日志的语句 命令: 改进方法:上面的命令可以删除NSLog所在的...

网友评论

      本文标题:将NSLog打印的日志保存在沙盒中

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