iPhone開發技巧之日誌保存教程

Objective-C開發程序的時候,有專門的日誌操作類NSLog,它將指定的輸出到標準的錯誤輸出上(stderr)。我們可以利用它在Xcode的日誌輸出窗口,或者是輸出到具體的文件當中。

AD:

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開發技巧之日誌保存教程的內容介紹完了,希望通過本文的學習能對你有所幫助!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章