iOS 自定义NSLog

原创 2016年06月01日 12:14:25
//第一种
#ifdef DEBUG
#define CLog(format, ...) NSLog(format, ## __VA_ARGS__)
#else
#define CLog(format, ...)
#endif


// 第二种
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"[文件名:%s]\n" "[函数名:%s]\n" "[行号:%d] \n" fmt), __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...);
#endif


参数解释:

__VA_ARGS__是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉的作用,否则会编译出错, 你可以试试。

__FILE__宏在预编译时会替换成当前的源文件名

3.__LINE__宏在预编译时会替换成当前的行号

4.__FUNCTION__宏在预编译时会替换成当前的函数名称

有了以上这几个宏,特别是有了__VA_ARGS__,调试信息的输出就变得灵活多了。



版权声明:本文为博主原创文章,未经博主允许不得转载。

objective-c Unicode转中文 重写NSLog

objective-c Unicode转中文 重写NSLog#define NSLog(fmt, ...)\ {\ NSString *string=[NSString stringWith...
  • x1135768777
  • x1135768777
  • 2016年02月17日 14:00
  • 2840

NSLog函数重写

跟C++的输出函数相比,NSlog函数有个很大的优势,就是它可以输出对象。 在实际使用过程中,我们可以通过实现description函数来实现对NSLog函数的重写 -(NSString*)d...
  • ycxmartin111111
  • ycxmartin111111
  • 2013年11月14日 14:35
  • 2095

自定义NSLog——彰显个性化

项目调试过程中,有两大神器。一是断点,二是Log。而工程中出现的大量Log输出,在发布版本时是需要注释掉的。一方面是因为可能会暴露APP里的保密数据,另一方面也是最主要的原因就是它会占用时间和设备资源...
  • snowrain1108
  • snowrain1108
  • 2016年04月19日 16:34
  • 817

ios开发——宏定义实现NSLog不打印设置

前提:在XCode做开发调试时往往需要打印一些调试信息做debug用,大家知道当打印信息的地方多了之后在模拟器上跑可能不会有什么问题,因为模拟器用的是电脑的硬件但是当应用跑在设备上时这些输出语句会在很...
  • zzzzzdddddxxxxx
  • zzzzzdddddxxxxx
  • 2016年08月01日 10:00
  • 1915

OC NSLog 打印格式 自定义 时间戳

oc 中 NSLog打印 1.我们在调试阶段一般需要在控制台打印一些信息,在发布的时候 ,不希望打印。 2.有时不希望信息简单些,不需要时间戳之类的信息, 3.或者想打印自己想要的信息,需要自定...
  • u011980994
  • u011980994
  • 2015年03月11日 17:44
  • 2726

ios 将NSLog日志重定向输出到文件中保存

// // ZJAppDelegate.m // Example // // Created by laizhenjie on 14-5-7. // Copyright (c) 2014年 L...
  • laencho
  • laencho
  • 2014年05月07日 10:31
  • 1817

IOS自定义NSLOG和断言的使用/description方法的使用原理(对象,数组,字典)

举例:     DLog(@"-----%@",@"自己添加的"); 控制台输出:  [文件名:/Users/lambo/Desktop/‰ª£Á†ÅÈõÜ/ÂÆûÁî®ÊäÄÊúØ/ÂÆûÁ...
  • u011146511
  • u011146511
  • 2017年03月18日 12:55
  • 359

iOS:你真的理解你在用的自定义NSLog吗?

自定义NSLog 我们在调试程序的时候,往往需要输出一些日志信息,用到NSLog函数,当我们准备发布程序,需要注释掉NSLog代码,这个时候往往会定义一个宏,在调试的时候,会输出日志,在Releas...
  • IT_ZGC
  • IT_ZGC
  • 2016年06月08日 15:31
  • 290

自定义NSLog——彰显个性化

项目调试过程中,有两大神器。一是断点,二是Log。而工程中出现的大量Log输出,在发布版本时是需要注释掉的。一方面是因为可能会暴露APP里的保密数据,另一方面也是最主要的原因就是它会占用时间和设备资源...
  • snowrain1108
  • snowrain1108
  • 2016年04月19日 16:34
  • 817

PCH 文件简单使用与自定义NSLog

pch文件作用pch文件就是一个头文件,可以被项目中的其他所有源文件共享和访问。正是因为pch文件这个特有的属性,所以当有一个宏,在很多文件都需要用到的时候,就是我们用pch文件的时候了。 pch作...
  • xwb0714
  • xwb0714
  • 2017年12月04日 16:29
  • 53
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS 自定义NSLog
举报原因:
原因补充:

(最多只允许输入30个字)