iOS NSLog去掉时间戳及其他输出样式

1.一般项目中我的NSLog会在Prefix.pch文件添加如下代码,已保证在非调试状态下NSLog不工作
 
1
2
3
4
5
#ifdef DEBUG
#define NSLog(...) NSLog(__VA_ARGS__)
#else
#define NSLog(...)
#endif

2.在项目中如果没做任何处理的话会输出如下信息,前面有一个时间戳

 
1
2014-11-07 08:25:40.885 zcsy[673:8937] cell的高度258.684998

我们修改下宏如下:

 
1
2
3
4
5
#ifdef DEBUG
#define NSLog(FORMAT, ...) fprintf(stderr,"%s\n",[[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define NSLog(...)
#endif

经过上面的修改我们可以输出 纯净的内容如下:

 
1
cell的高度258.684998

我们可以用更好的版本我推荐用这个打印我们的日志:

 
1
2
3
4
5
#ifdef DEBUG
#define NSLog(FORMAT, ...) fprintf(stderr,"%s:%d\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);
#else
#define NSLog(...)
#endif

这样我们的输出就是这样:

 
1
2
//它会输出文件名,和打印的具体行号
DealItemCell.m:307 cell的高度258.684998
 

 

http://www.guoms.com/?p=124

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。