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

2021-05-25 09:22:08 字數 1510 閱讀 9343

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

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

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

123

4567

891011

1213

1415

1617

#ifdef

debug

# define

log(fmt, ...)dowhile(0)

# define

log_methodnslog(@"%s"

, __func__)

# define

log_cmethodnslog(@"%@/%@"

, nsstringfromclass([self class]), nsstringfromselector(_cmd))

# define

count

(p) nslog(@"%s(%d): count = %d/n"

, __func__, __line__, [p retaincount]);

# define

log_trace

(x)dowhile(0)

#else

# define

log(...)

# define

log_method

# define

log_cmethod

# define

count

(p)

# define

log_trace

(x)

#endif

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

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

123

4567

891011

1213

1415

1617

- (void)redirectnslogtodocumentfolder

- (void

.....

}

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

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

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

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

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

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