打印日志信息到文件
2015-06-08 10:26
316 查看
m
在真机,或真机没连接到电脑时,可以把日志信息输出到文件
1.设置日志文件路径
2.开始打印日志
freopen重定向打印
stderr为标准出错信息
3.关闭打印日志
4.清空日志文件
在真机,或真机没连接到电脑时,可以把日志信息输出到文件
1.设置日志文件路径
- (NSString*)logFilePath { //非越狱版路径 #ifndef CRACK NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; //越狱版路径 #else NSString *documentsDirectory = @"/var/root/Media/xiaodao/"; #endif NSString *logDir = [documentsDirectory stringByAppendingPathComponent:@"logs"]; BOOL isDir = YES; //如果logs文件夹存不存在,则创建 if([[NSFileManager defaultManager] fileExistsAtPath:logDir isDirectory:&isDir] == NO) { [[NSFileManager defaultManager] createDirectoryAtPath:logDir withIntermediateDirectories:YES attributes:nil error:nil]; } //以当天的时间为文件名,文件名后缀为.log NSString *fileName =[NSString stringWithFormat:@"%@.log",[NSDate date]]; NSString *logPath = [logDir stringByAppendingPathComponent:fileName]; return logPath; }
2.开始打印日志
1 - (void)startLog { 2 freopen([[self logFilePath] cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr); 3 }
freopen重定向打印
stderr为标准出错信息
3.关闭打印日志
1 - (void)finishLog { 2 fflush(stderr); 3 dup2(dup(STDERR_FILENO), STDERR_FILENO); 4 close(dup(STDERR_FILENO)); 5 }
4.清空日志文件
1 - (BOOL)deleteLogFile { 2 BOOL success = [[NSFileManager defaultManager] removeItemAtPath:[self logFilePath] error:nil]; 3 return success; 4 }
相关文章推荐
- Eclipse中如何快速查看jar包中 的class源码
- Android4.4 wpa_supplicant深入分析之wpa_supplicant初始化流程续
- getsockname与getpeername用法与区别
- spring整合quartz并持久化
- 考试easy该,学习如何做?
- live555学习笔记1-引子
- isNotEmpty与isNotBlank的区别
- odbc快速打开命令
- Quartz将Job保存在数据库中所需表的说明
- php通过变通方法检测系统的文件夹路径编码
- android面试题 不仅仅是面试是一个很好的学习
- 页面背景图像的代码
- 内核同步之顺序锁
- Objective-C Autorelease Pool 的实现原理
- libsvn_subr-1.so.0: undefined symbol: apr_atomic_xchgptr 故障解决
- atitit. orm mapping cfg 映射配置(3)-------hbnt one2maney cfg
- UML类图几种关系的总结(转载)
- RESTLET开发实例
- Effective JavaScript Item 38 调用父类的构造函数在子类的构造函数
- 客户管理系统之模块设计(十)