[NSLog日志]ios在真机中将NSLog日志存入文件并保存到document目录
2015-03-04 15:32
381 查看
保存Log日志
保存到(/Documents/log.text)文件的Log日志
Q:如何将日志打印到一个文件
A:可以使用freopen函数重定向标准输出和标准出错文件。因为printf函数会向标准输出(stdout)打印,而NSLog函数会向标准出错(stderr)打印。重新定向标准输出(stdout)和标准出错(stderr)到一个文件将会使他们打印日志到一个文件中。
项目配置共享文件
您可以通过如下步骤来让应用程序支持文件共享:在应用程序的Info.plist文件中添加UIFileSharingEnabled键,并将键值设置为YES。将您希望共享的文件放在应用程序的Documents目录。一旦设备插入到用户计算机,iTunes 9.1就会在选中设备的Apps标签中显示一个File Sharing区域。此后,用户就可以向该目录添加文件或者将文件移动到桌面计算机中。如果应用程序支持文件共享,当文件添加到Documents目录后,应用程序应该能够识别并做出适当响应。例如说,应用程序可以将新文件的内容显示界面上。请不要向用户展现目录的文件列表并询问他们希望对文件执行什么操作。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //当真机连接Mac调试的时候把这些注释掉,否则log只会输入到文件中,而不能从xcode的监视器中看到。 //如果是真机就保存到Document目录下的log.text文件中 UIDevice *device = [UIDevice currentDevice]; if (![[device model] isEqualToString:@"iPhone 4s Simulator"]) { // 开始保存日志文件 [self redirectNSlogToDocumentFolder]; } /*******************************************************************************/ return YES; }
保存到(/Documents/log.text)文件的Log日志
#pragma mark - 保存到(/Documents/log.text)文件的Log日志 - (void)redirectNSlogToDocumentFolder { /* NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"YYYY-MM-dd HH:mm:ss"]; NSString *date = [formatter stringFromDate:[NSDate date]]; NSString *fileName = [NSString stringWithFormat:@"%@.log",date]; */ NSString *fileName = [NSString stringWithFormat:@"log.text"]; NSString *logfilePath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/%@",fileName]; NSLog(@"logfilePath = %@",logfilePath); NSFileManager *fileManage = [NSFileManager defaultManager]; //判断是否存在(/Documents/log.text)文件路径,不存在就创建文件 BOOL islogfilePath = [fileManage fileExistsAtPath:logfilePath]; if (!islogfilePath) { [fileManage createFileAtPath:logfilePath contents:nil attributes:nil]; } freopen([logfilePath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr); /* fropen([logfilePath cStringUsingEncoding:NSASCIIStringEncoding], stdout); fropen([logfilePath cStringUsingEncoding:NSASCIIStringEncoding], stderr); */ }
Q:如何将日志打印到一个文件
A:可以使用freopen函数重定向标准输出和标准出错文件。因为printf函数会向标准输出(stdout)打印,而NSLog函数会向标准出错(stderr)打印。重新定向标准输出(stdout)和标准出错(stderr)到一个文件将会使他们打印日志到一个文件中。
freopen("/tmp/log.txt", "a+", stdout); freopen("/tmp/log.txt", "a+", stderr);
项目配置共享文件
您可以通过如下步骤来让应用程序支持文件共享:在应用程序的Info.plist文件中添加UIFileSharingEnabled键,并将键值设置为YES。将您希望共享的文件放在应用程序的Documents目录。一旦设备插入到用户计算机,iTunes 9.1就会在选中设备的Apps标签中显示一个File Sharing区域。此后,用户就可以向该目录添加文件或者将文件移动到桌面计算机中。如果应用程序支持文件共享,当文件添加到Documents目录后,应用程序应该能够识别并做出适当响应。例如说,应用程序可以将新文件的内容显示界面上。请不要向用户展现目录的文件列表并询问他们希望对文件执行什么操作。
相关文章推荐
- ios在真机中将NSLog日志存入文件并保存到document目录
- iOS开发 在真机中将NSLog日志存入文件并保存到document目录
- iOS - NSLog、UncaughtException日志保存到文件
- ios 将NSLog日志重定向输出到文件中保存
- iOS - NSLog、UncaughtException日志保存到文件
- ios 将NSLog日志重定向输出到文件中保存
- IOS在Document目录下创建文件夹、保存、读取、以及删除文件
- iOS - NSLog、UncaughtException日志保存到文件
- iOS – NSLog、UncaughtException日志保存到文件
- ios 将NSLog日志重定向输出到文件中保存(2)
- iOS真机下查看保存在沙盒目录下的日志信息
- iOS开发之真机获取NSLog的日志文件
- ios 将NSLog日志重定向输出到文件中保存(3)
- iOS将Log日志重定向输出到文件中保存
- qt iOS app 如何获取共享文件夹文件,如何使用document文档目录文件
- iOS 各种系统文件目录 临时,缓存,document,lib,归档,序列化
- iOS真机调试打印并保存控制台输出日志
- ios 将Log日志重定向输出到文件中保存
- iOS将日志存入文件
- ios 将Log日志重定向输出到文件中保存