iOS中格式化輸出日誌

大體有兩種: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

相關文章
相關標籤/搜索