根據Debug和Release狀態的變化來屏蔽日志輸出

經常會用到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 為例,如下圖:


如圖
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容