iPhone开发技巧之日志保存教程

移动开发 iOS
Objective-C开发程序的时候,有专门的日志操作类NSLog,它将指定的输出到标准的错误输出上(stderr)。我们可以利用它在Xcode的日志输出窗口,或者是输出到具体的文件当中。

iPhone开发技巧之日志保存教程是本文要介绍的内容,大部分人调试程序都是看日志吧,这里我就给大家总结一下iphone程序中添加保存日志的方法。

Objective-C开发程序的时候,有专门的日志操作类NSLog,它将指定的输出到标准的错误输出上(stderr)。我们可以利用它在Xcode的日志输出窗口,或者是输出到具体的文件当中。

下面是我在程序中常用到的日志宏,用DEBUG开关管理,也就是说只有在DEBUG模式下才让日志输出 :

  1. #ifdef DEBUG  
  2. #  define LOG(fmt, ...) do {                                            \  
  3.         NSString* file = [[NSString alloc] initWithFormat:@"%s", __FILE__]; \  
  4.         NSLog((@"%@(%d) " fmt), [file lastPathComponent], __LINE__, ##__VA_ARGS__); \  
  5.         [file release];                                                 \  
  6.     } while(0)  
  7. #  define LOG_METHOD NSLog(@"%s", __func__)  
  8. #  define LOG_CMETHOD NSLog(@"%@/%@", NSStringFromClass([self class]), NSStringFromSelector(_cmd))  
  9. #  define COUNT(p) NSLog(@"%s(%d): count = %d\n", __func__, __LINE__, [p retainCount]);  
  10. #  define LOG_TRACE(x) do {printf x; putchar('\n'); fflush(stdout);} while (0)  
  11. #else  
  12. #  define LOG(...)  
  13. #  define LOG_METHOD  
  14. #  define LOG_CMETHOD  
  15. #  define COUNT(p)  
  16. #  define LOG_TRACE(x)  
  17. #endif 

可以看到,除了标准的用户定义输出外,我还加入了许多有用的信息,比如源程序文件位置,行号,类名,函数名等。具体的应用可以在具体的开发过程中添加、删除。

真机测试的时候,可以利用freopen将标准错误输出保存到指定的文件当中,这样就可以在问题发生后分析日志文件。

  1. - (void)redirectNSLogToDocumentFolder{  
  2.     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);  
  3.     NSString *documentsDirectory = [paths objectAtIndex:0];  
  4.     NSString *fileName =[NSString stringWithFormat:@"%@.log",[NSDate date]];  
  5.     NSString *logFilePath = [documentsDirectory stringByAppendingPathComponent:fileName];  
  6.     freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);  
  7. }  
  8.  
  9. - (void)applicationDidFinishLaunching:(UIApplication *)application {  
  10.     // 真机测试时保存日志  
  11.     if ([CDeviceInfo getModelType] != SIMULATOR) {  
  12.         [self redirectNSLogToDocumentFolder];  
  13.     }  
  14.     .....  

小结:iPhone开发技巧之日志保存教程的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-07-27 15:26:10

iPhone URL Scheme 进程

2011-08-10 15:48:10

iPhone网络

2011-08-16 17:18:44

iPhone开发安全

2021-06-02 06:02:50

Loki 源码分析日志

2011-08-08 14:57:46

iPhone Autoreleas Property

2011-08-02 17:37:01

IPhone开发 环境搭建

2011-07-08 14:58:16

iPhone Xcode iOS

2011-08-10 18:24:22

iPhone 图形 绘图

2011-07-08 16:02:24

iphone

2018-03-25 08:44:07

iPhonePDF网页

2011-02-22 16:23:20

VSFTPD

2011-07-27 09:33:14

iPhone 网络 Web

2014-04-21 15:53:59

iOS开源项目CocoaLumber

2012-04-26 13:26:58

iPhone应用技巧

2011-07-21 10:29:18

iPhone 开发

2011-08-09 13:10:32

iPhone地图开发

2011-07-18 09:35:29

iPhone 框架

2012-05-17 11:45:12

iPhone

2010-03-11 11:12:30

vCenter日志文件

2011-07-18 10:53:09

点赞
收藏

51CTO技术栈公众号