iOS开发之真机中将NSLog日志存入文件并保存到document目录

1.自定义好方法

#pragma mark - 用户方法,将NSLog的输出信息写入到.log文件中
// 将NSLog打印信息保存到Document目录下的文件中
- (void)redirectNSlogToDocumentFolder
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentDirectory = [paths objectAtIndex:0];
    
    NSString *fileName = [NSString stringWithFormat:@"%@.log",[[NSDate alloc] initWithTimeIntervalSinceNow:8*3600]]; // 注意不是NSData!
    NSString *logFilePath = [documentDirectory stringByAppendingPathComponent:fileName];
    
    // 将log输入到文件
    freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);
}

2.在Appdelegate.m中调用

- (BOOL)application(UIApplication *)application didFinishLaunchingWithOptions(NSDictionary *)launchOptions
{
     //制定真机调试保存日志文件 
     [self redirectNSLogToDocumentFolder];
}

3.plist文件配置

您可以通过如下步骤来让应用程序支持文件共享:在应用程序的Info.plist文件中添加UIFileSharingEnabled键,并将键值设置为YES。将您希望共享的文件放在应用程序的Documents目录。
一旦设备插入到用户计算机,iTunes 就会在选中设备的Apps标签中显示一个File Sharing区域。此后,用户就可以向该目录添加文件或者将文件移动到桌面计算机中。如果应用程序支持文件共享,当文件添加到Documents目录后,应用程序应该能够识别并做出适当响应。例如说,应用程序可以将新文件的内容显示界面上。请不要向用户展现目录的文件列表并询问他们希望对文件执行什么操作。
然后通过真机调试,通过itunes查看共享文件。

image.png

注意:

1.使用定向日志后,Xcode控制台将无法输入日志
2.如果App包没有看到Log内容,或者是Xcode正常打印日志,查看是否忘记设置程序为Debug状态
3.如果上架App,建议关闭此功能,除非App有文件分享等功能,否则将会苹果爸爸审核将会拒绝

你可能感兴趣的:(iOS开发之真机中将NSLog日志存入文件并保存到document目录)