大體有兩種:xcode
一、基於NSLog函數
#ifdef DEBUG # define DLog(fmt, ...) NSLog((@"[文件名:%s]\n" "[函數名:%s]\n" "[行號:%d] \n" fmt), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__); #else # define DLog(...); #endif
二、基於printf日誌
#ifdef DEBUG #define kDLOG(FORMAT, ...) fprintf(stderr,"%s: %d\t %s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]) #define NSLog(...) NSLog(__VA_ARGS__) #else #define kDLOG(...) #define NSLog(...) #endif
那麼這兩種的區別主要在哪呢?除了你們表面上看到的NSLog會輸出時間戳等信息,printf不會外還有很重要的一點:打開xcode--window--Devices,選擇設備,這個時候能夠選擇查看日誌,這個時候咱們所能查看到的日誌僅限於NSLog,而若是咱們是用printf的話在這是看不到日誌信息的。code