ios 打印 详细错误日志_iOS打印Debug日志的方式
简单介绍以下几个宏:
1) __VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉,否则会编译出错。
2) __FILE__ 宏在预编译时会替换成当前的源文件名
3) __LINE__宏在预编译时会替换成当前的行号
4) __FUNCTION__宏在预编译时会替换成当前的函数名称
1.重新定义系统的NSLog,__OPTIMIZE__ 是release 默认会加的宏
#ifndef __OPTIMIZE__
#define NSLog(...) NSLog(__VA_ARGS__)
#else
#define NSLog(...){}
#endif
2.直接自己写#define,当release版本的时候把#define 注释掉即可
#define IOS_DEBUG
#ifdef IOS_DEBUG
#define NSLog(...) NSLog(__VA_ARGS__)
#endif
3.
#ifdef DEBUG
# define DLog(format, ...) NSLog((@"[文件名:%s]" "[函数名:%s]" "[行号:%d]" format), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...);
#endif
这种方式需要修改项目的配置,使得在debug编译的时候,编译DLog的宏,产生详细的日志信息,而release的时候,不产生任何控制台输出
相比而言,还是第一种比较方便
ios 打印 详细错误日志_iOS打印Debug日志的方式相关推荐
- ios 打印 详细错误日志_iOS中打印系统详细日志
Q:如何打印当前的函数和行号? A:我们可以在打印时使用一些预编译宏作为打印参数,来打印当前的函数和行号.如: 1 NSLog(@"%s:%d obj=%@", __func__, ...
- ios 打印 详细错误日志_ios 打印日志注意的点
1.常用的打印格式化字符 %@ 对象 %d,%i 整型 (%i的老写法) %hd 短整型 %ld , %lld 长整型 %u 无符整型 %f 浮点型和double型 %0.2f 精度浮点数,只保留两位 ...
- ios 打印 详细错误日志_【专家专栏】林相宇 | IOS错误日志抓取和分析
原标题:[专家专栏]林相宇 | IOS错误日志抓取和分析 在调试自己和别人的IOS App时,发生Crash是非常正常的情况,分析这些Crash的主要手段之一就是分析Crash发生时产生的错误日志.对 ...
- ios 打印 详细错误日志_关于Xcode不能打印崩溃日志
最近在调试应用的时候发现了一个问题, 就是Xcode的控制台不打印Crash日志. 几经周折终于发现了问题. 因为不能打印日志, 开始以为是我没有设置 NSSetUncaughtExceptionHa ...
- java 捕获异常打印详细错误信息:Exception e
前言 dubbo接口数据进行转换的过程中,出现了空指针,但是自己捕获的时候没有注意这个问题,只是简单的打印出来,结果发现答应出来的都是null,基本上是无效的异常打印. 完善异常信息 一开始的代码是如 ...
- 计算机打印状态错误,打印机开始打印就显示错误怎么办?
打印机,作为办公室最为常见的办公设备,有使用win10系统的用户遇到了打印机一打印就显示错误的问题,那么遇到这个问题该如何解决呢?下面一起来看看吧. 解决办法: 方法一: 1.首先要删除打印任务,并将 ...
- android 是否允许打印debug级别日志的开关_log日志功能及设置方法
log日志功能及设置方法的详细介绍,首先引入Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍,下面一起跟随小编过来看看吧. 一.日志级别(从低到高): DEB ...
- log日志:打印日志到控制台、文件、日志文件分区、打印错误日志到文件
springboot默认会加载classpath:logback-spring.xml文件 如果需要自定义文件名称,在application.properties中配置logging.config 选 ...
- springboot关闭mybatis打印debug日志
关闭mybatis的debug日志打印,总是关不掉,最后通过配置mybatis-config.xml终于关掉了debug日志打印 <?xml version="1.0" en ...
最新文章
- 发布:IE自动打印插件
- 静态路由默认路由的配置
- SQLServer出现不允许保存更改的问题解决
- 甲骨文被曝服务器漏洞,攻击者窃获 22.6 万美元加密货币
- AI技术宅:女神说什么,听我的!
- 系统集成Nacos和Feign
- TensorFlow Keras 官方文档中文版文档学习
- 推荐五款你从未见过的嵌入式电子电路仿真APP
- Mission Planner中级应用(APM或PIX飞控)3——APM飞控安装双GPS测试 APM双GPS
- 报名 | 智慧数据云平台与新型城镇化智库论坛
- -exec rm 与 xargs rm -rf 深度剖析
- T-BOX,OBD区别
- oracle数据库卷管理,AIX系统逻辑卷管理
- JAVA 文件上传格式限制_关于servlet文件上传限制文件大小的问题,求高手帮忙
- 数据挖掘第二章 认识数据
- 短视频引流怎么做?如何利用短视频引流?短视频引流技巧
- 《宏观经济学》第四章
- 【解题报告】2015ACM/ICPC亚洲区上海站
- CSS实现强制不换行、自动换行、强制换行的css代码
- 1句话搞明白啥是码元、啥是比特率、啥是波特率
热门文章
- UVA11233 POJ3366 HDU1804 Deli Deli【水题】
- Bailian3858 和数【暴力+集合】
- Bailian2912 三个完全平方数【进制+枚举】
- CCF NOI1038 玩扑克
- Metropolis 采样与蒙特卡洛算法
- 命名集 —— 名字结构
- C Tricks(十二)—— 获取字符数组的末尾元素
- windows操作系统的使用 —— 资源监视器
- 江苏高考成绩什么时候可以查询2021,2021年江苏高考成绩什么时候公布出来,几月几号几点钟可以查询...
- python字符串函数_python字符串函数