自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iPhone開發(fā)技巧之日志保存教程

移動開發(fā) iOS
Objective-C開發(fā)程序的時候,有專門的日志操作類NSLog,它將指定的輸出到標(biāo)準(zhǔn)的錯誤輸出上(stderr)。我們可以利用它在Xcode的日志輸出窗口,或者是輸出到具體的文件當(dāng)中。

iPhone開發(fā)技巧之日志保存教程是本文要介紹的內(nèi)容,大部分人調(diào)試程序都是看日志吧,這里我就給大家總結(jié)一下iphone程序中添加保存日志的方法。

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

下面是我在程序中常用到的日志宏,用DEBUG開關(guān)管理,也就是說只有在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 

可以看到,除了標(biāo)準(zhǔn)的用戶定義輸出外,我還加入了許多有用的信息,比如源程序文件位置,行號,類名,函數(shù)名等。具體的應(yīng)用可以在具體的開發(fā)過程中添加、刪除。

真機(jī)測試的時候,可以利用freopen將標(biāo)準(zhǔn)錯誤輸出保存到指定的文件當(dāng)中,這樣就可以在問題發(fā)生后分析日志文件。

  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.     // 真機(jī)測試時保存日志  
  11.     if ([CDeviceInfo getModelType] != SIMULATOR) {  
  12.         [self redirectNSLogToDocumentFolder];  
  13.     }  
  14.     .....  

小結(jié):iPhone開發(fā)技巧之日志保存教程的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-27 15:26:10

iPhone URL Scheme 進(jìn)程

2011-08-10 15:48:10

iPhone網(wǎng)絡(luò)

2011-08-08 14:57:46

iPhone Autoreleas Property

2021-06-02 06:02:50

Loki 源碼分析日志

2011-07-08 14:58:16

iPhone Xcode iOS

2011-07-08 16:02:24

iphone

2011-08-10 18:24:22

iPhone 圖形 繪圖

2011-08-02 17:37:01

IPhone開發(fā) 環(huán)境搭建

2011-08-16 17:18:44

iPhone開發(fā)安全

2011-07-27 09:33:14

iPhone 網(wǎng)絡(luò) Web

2011-02-22 16:23:20

VSFTPD

2018-03-25 08:44:07

iPhonePDF網(wǎng)頁

2011-07-18 09:35:29

iPhone 框架

2014-04-21 15:53:59

iOS開源項(xiàng)目CocoaLumber

2011-08-09 13:10:32

iPhone地圖開發(fā)

2011-07-21 10:29:18

iPhone 開發(fā)

2012-04-26 13:26:58

iPhone應(yīng)用技巧

2012-05-17 11:45:12

iPhone

2011-07-18 12:29:10

2011-07-27 17:24:31

iPhone NSXMLParse XML
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號