iPhone開發技巧之除錯篇 儲存日誌

2021-05-27 17:19:13 字數 1071 閱讀 7466

大部分人除錯程式都是看日誌吧,這裡我就給大家總結一下iphone程式中新增儲存日誌的方法。

objective-c開發程式的時候,有專門的日誌操作類nslog,它將指定的輸出到標準的錯誤輸出上(stderr)。我們可以利用它在xcode的日誌輸出視窗,或者是輸出到具體的檔案當中。

下面是我在程式中常用到的日誌巨集,用debug開關管理,也就是說只有在debug模式下才讓日誌輸出 :

#ifdef debug

# define log(fmt, ...) do while(0)

# define log_method nslog(@"%s", __func__)

# define log_cmethod nslog(@"%@/%@", nsstringfromclass([self class]), nsstringfromselector(_cmd))

# define count(p) nslog(@"%s(%d): count = %d\n", __func__, __line__, [p retaincount]);

# define log_trace(x) do while (0)

#else

# define log(...)

# define log_method

# define log_cmethod

# define count(p)

# define log_trace(x)

#endif

可以看到,除了標準的使用者定義輸出外,我還加入了許多有用的資訊,比如源程式檔案位置,行號,類名,函式名等。具體的應用可以在具體的開發過程中新增、刪除。

真機測試的時候,可以利用freopen將標準錯誤輸出儲存到指定的檔案當中,這樣就可以在問題發生後分析日誌檔案。

- (void)redirectnslogtodocumentfolder

// 真機測試時儲存日誌

if ([cdeviceinfo getmodeltype] != simulator)

.....

}

iPhone開發技巧之除錯篇(2) 儲存日誌

大部分人除錯程式都是看日誌吧,這裡我就給大家總結一下iphone程式中新增儲存日誌的方法。objective c開發程式的時候,有專門的日誌操作類nslog,它將指定的輸出到標準的錯誤輸出上 stderr 我們可以利用它在xcode的日誌輸出視窗,或者是輸出到具體的檔案當中。下面是我在程式中常用到的...

Visual Studio除錯之斷點技巧篇補遺

講完 visual studio除錯之斷點技巧篇 以後,翻翻以前看得一些資料和自己寫的一些文章,發現還有幾個關於中斷程式的技巧在前面的文章裡面遺漏了,決定還是在這裡總結一下。當然啦,如果你知道這些技巧,忽略這篇文章好了,可能有人會對這個問題有一些爭議,因為大部分情況下我們只需要在偵錯程式 debug...

Visual Studio除錯之斷點技巧篇補遺

講完visual studio除錯之斷點技巧篇 以後,翻翻以前看得一些資料和自己寫的一些文章,發現還有幾個關於中斷程式的技巧在前面的文章裡面遺漏了,決定還是在這裡總結一下。當然啦,如果你知道這些技巧,忽略這篇文章好了,可能有人會對這個問題有一些爭議,因為大部分情況下我們只需要在偵錯程式 debugg...