經常會用到NSLog來調試我們的程序,而隨著項目越來越大,這些用于調試的日志輸出就會變得很難管理。 我們在發布正式版的時候一定要屏蔽掉所有后臺輸出,因為這些輸出還是比較消耗系統資源的。 往往到了這個時候,我們不得不去一行一行的找到NSLog調用,然后注釋掉。 這樣做在項目小的時候還比較有效,但隨著項目規模的增長,就會變得越來越難控制。 下面就給大家介紹一個簡單的方法,讓我們在生成Release版本時不需要進行任何更改即可屏蔽所有的Log輸出
1.首先我們先要定義這樣一段預處理命令,建一個.h文件,例如 NSLog.h
#ifdef DEBUG
#define NSLog(FORMAT, ...) do{fprintf(stderr,"[DEBUG] > [%s %s] [Line %d] %s %s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String],[[[NSString stringWithUTF8String:__FUNCTION__] lastPathComponent] UTF8String], __LINE__,[[[GJLogFormatter dateFormatterWithFormat:@"HH:mm:ss.SSS"] stringFromDate:[NSDate date]] UTF8String], [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);}while(0)
#else
#define NSLog(format, ...)
#endif
檢查DEBUG標志是否正確定義,xcode一般會在debug運行配置項里面已經定義號了DEBUG標志,如果沒定義我們就自己寫上,以我的xcode 4 為例,如下圖:
如圖