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

相关文章
相关标签/搜索