美文网首页
根据Debug和Release状态的变化来屏蔽日志输出

根据Debug和Release状态的变化来屏蔽日志输出

作者: Demonboy | 来源:发表于2017-06-21 16:22 被阅读19次

经常会用到NSLog来调试我们的程序,而随着项目越来越大,这些用于调试的日志输出就会变得很难管理。 我们在发布正式版的时候一定要屏蔽掉所有后台输出,因为这些输出还是比较消耗系统资源的。 往往到了这个时候,我们不得不去一行一行的找到NSLog调用,然后注释掉。 这样做在项目小的时候还比较有效,但随着项目规模的增长,就会变得越来越难控制。 下面就给大家介绍一个简单的方法,让我们在生成Release版本时不需要进行任何更改即可屏蔽所有的Log输出

1.首先我们先要定义这样一段预处理命令,建一个.h文件,例如 NSLog.h

#ifdef DEBUG

#define NSLog(FORMAT, ...)  do{fprintf(stderr,"[DEBUG] >  [%s %s] [Line %d] %s %s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String],[[[NSString stringWithUTF8String:__FUNCTION__] lastPathComponent] UTF8String], __LINE__,[[[GJLogFormatter dateFormatterWithFormat:@"HH:mm:ss.SSS"] stringFromDate:[NSDate date]] UTF8String], [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);}while(0)

#else

#define NSLog(format, ...)

#endif

检查DEBUG标志是否正确定义,xcode一般会在debug运行配置项里面已经定义号了DEBUG标志,如果没定义我们就自己写上,以我的xcode 4 为例,如下图:


如图

相关文章

网友评论

      本文标题:根据Debug和Release状态的变化来屏蔽日志输出

      本文链接:https://www.haomeiwen.com/subject/njltcxtx.html