一般打印日志都是用的系統(tǒng)自帶的NSLog來打印的,假如項目做完了,要上線了,這些打印的日志就會很浪費性能,網(wǎng)上有很多的解決辦法,我也是感覺網(wǎng)上的還是有點不方便,所以就自己又修改了一下,分享給大家。
網(wǎng)上的方法就是利用Debug狀態(tài)和Release狀態(tài)來控日志的輸出,如果是Debug狀態(tài)的話就輸出日志(就是NSLog的東西會打印),如果是Release狀態(tài)的話就不用輸出日志(就是NSLog的東西不會打印。)所以上架的時候就需要調(diào)成Release就行了,就可以避免浪費打印日志,節(jié)省性能,提高效率。
其實精髓只是在pch(如果不知道什么是pch的話請看這個鏈接:http://www.cnblogs.com/BK-12345/p/6074087.html)里面寫了一段代碼就可以實現(xiàn)這個功能了,而我只是將這段代碼優(yōu)化了一下,感覺不錯。
代碼如下:
//打印的日志
#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 DLog(...)
#endif
之前用NSLog的都可以改成YZLog就可以了,比如NSLog(@"測試");以后就可以寫成YZLog(@"測試");,打印日志的時候,你就會發(fā)現(xiàn)多了兩個東西,第一個就是這個日志在哪個類文件中,會把這個類的名字打印出來,還有一個就是在這個類文件的第幾行,也會打印出來,這樣的話一眼就看出來這個日志是在哪里寫的,非常方便。
對比如圖:
YZLog(@"測試");
NSLog(@"測試");