通常打印日誌都是用的系統自帶的NSLog來打印的,假如項目作完了,要上線了,這些打印的日誌就會很浪費性能,網上有不少的解決辦法,我也是感受網上的仍是有點不方便,因此就本身又修改了一下,分享給你們。html
網上的方法就是利用Debug狀態和Release狀態來控日誌的輸出,若是是Debug狀態的話就輸出日誌(就是NSLog的東西會打印),若是是Release狀態的話就不用輸出日誌(就是NSLog的東西不會打印。)因此上架的時候就須要調成Release就好了,就能夠避免浪費打印日誌,節省性能,提升效率。ide
其實精髓只是在pch(若是不知道什麼是pch的話請看這個連接:http://www.cnblogs.com/BK-12345/p/6074087.html)裏面寫了一段代碼就能夠實現這個功能了,而我只是將這段代碼優化了一下,感受不錯。性能
代碼以下:測試
//打印的日誌 #ifdef DEBUG #define YZLog(...) \ NSLog(@"%@第%d行:%@\n---------------------------",[[NSString stringWithFormat:@"%s",__FILE__] componentsSeparatedByString:@"/"][[[NSString stringWithFormat:@"%s",__FILE__] componentsSeparatedByString:@"/"].count-1], __LINE__, [NSString stringWithFormat:__VA_ARGS__]); #else #define YZLog(...) #endif
以前用NSLog的均可以改爲YZLog就能夠了,好比NSLog(@"測試");之後就能夠寫成YZLog(@"測試");,打印日誌的時候,你就會發現多了兩個東西,第一個就是這個日誌在哪一個類文件中,會把這個類的名字打印出來,還有一個就是在這個類文件的第幾行,也會打印出來,這樣的話一眼就看出來這個日誌是在哪裏寫的,很是方便。優化
對好比圖:spa
YZLog(@"測試");日誌
NSLog(@"測試");component