IOS 日志输出控制
2013-07-28 23:12
260 查看
用以下内容可以控制在debug版本中打印日志,而在release版本中不打印
#ifdef DEBUG
# define DBLog(format,...) NSLog((@"[%s][%s][%d]" format), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DBLog(...);
#endif
备注:
1.ANSI C标准中有几个标准预定义宏(也是常用的):
__LINE__:在源代码中插入当前源代码行号;
__FILE__:在源文件中插入当前源文件名;
__DATE__:在源文件中插入当前的编译日期
__TIME__:在源文件中插入当前编译时间;
__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1;
__cplusplus:当编写C++程序时该标识符被定义。
2.可变参数宏 ...和_ _VA_ARGS_ _
__VA_ARGS__ 是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。
实现思想就是宏定义中参数列表的最后一个参数为省略号(也就是三个点)。这样预定义宏_ _VA_ARGS_ _就可以被用在替换部分中,替换省略号所代表的字符串。
参考了http://www.cnblogs.com/lixiaohui-ambition/archive/2012/08/21/2649052.html
#ifdef DEBUG
# define DBLog(format,...) NSLog((@"[%s][%s][%d]" format), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DBLog(...);
#endif
备注:
1.ANSI C标准中有几个标准预定义宏(也是常用的):
__LINE__:在源代码中插入当前源代码行号;
__FILE__:在源文件中插入当前源文件名;
__DATE__:在源文件中插入当前的编译日期
__TIME__:在源文件中插入当前编译时间;
__STDC__:当要求程序严格遵循ANSI C标准时该标识被赋值为1;
__cplusplus:当编写C++程序时该标识符被定义。
2.可变参数宏 ...和_ _VA_ARGS_ _
__VA_ARGS__ 是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。
实现思想就是宏定义中参数列表的最后一个参数为省略号(也就是三个点)。这样预定义宏_ _VA_ARGS_ _就可以被用在替换部分中,替换省略号所代表的字符串。
参考了http://www.cnblogs.com/lixiaohui-ambition/archive/2012/08/21/2649052.html
相关文章推荐
- logback的日志控制输出
- iOS中解决Xcode9的Log日志无法输出中文的问题小结
- (转)log4j(三)——如何控制不同级别的日志信息的输出?
- (转)log4j(五)——如何控制不同目的地的日志输出?
- 以包为单位控制Log4j的日志级别和输出
- IOS将异常输出到日志
- ios NSLog输出格式控制
- 在tomcat下 控制 log4j的日志输出目录
- 自己写的C语言通用日志框架,可以控制日志输出等级
- 方法级别的java日志输出控制(二)集群
- IOS将异常输出到日志
- 【Log】一个功能强大的Log封装库包括控制日志输出,保存Log到文件,过滤输出等级。。
- ios 将NSLog日志重定向输出到文件中保存
- tomcat日志输出控制
- iOS 自定义日志输出
- 使用log4j进行日志控制输出
- Feign的日志输出级别控制
- 在tomcat下 控制 log4j的日志输出目录
- 【ios自学笔记】OC中log信息的输出方法,包含import、字符串、输出日志等知识点
- Tomcat 输出日志文件 catalina.out 大小控制