OC自定义日志 (Log)

OC自定义日志 (Log)

只在debug的时候输出, release的时候不输出

#ifndef DEBUG
#define NSLog(...)
#endif

输出时, 输出函数(方法)名及行数

//类名及函数(方法)名
NSLog(@"%s", __func__);
NSLog(@"%s",__FUNCTION__);
NSLog(@"%s",__PRETTY_FUNCTION__);

//行数 
NSLog(@"%d",__LINE__);

但是每次要写这些, 觉得很麻烦, 可以直接定义如下:

#ifdef DEBUG
#define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
#else
#define DLog(...)
#endif

只需要用 DLog(...) 就可以在输出需要信息的同时, 还输出所在类、 函数(方法)名以及行数。 在项目文件很多的时候, 有时候各种NSLog()内容很多很杂, 分不清各个NSLog()到底写在哪里, 可以用这种方法很快找到输出所在的位置, 很方便吧. (建议直接写进 .pch 文件中)

上面是看Stack Overflow上很多人推荐的 (个人也推荐上面的写法)
下面是看传智的视频学的, DLog(...) 输出的同时可以输出所在的类名和方法名

#ifdef DEBUG
#define DLog(...) NSLog(@"%s\n %@\n\n", __func__, [NSString stringWithFormat:__VA_ARGS__])
#else
#endif

你可能感兴趣的:(OC自定义日志 (Log))