前言
因为公司的SDK是以.a
的静态库形式发出去的, 所有给其他人用的时候可能一些内部信息看不到, 导致调试起来很费劲.
参考了友盟的打印接口.
完整的实现如下:
实现
定位你要加接口的文件类, 然后添加如下代码
.h
#pragma mark - 自定义打印开关
/** 设置是否打印sdk的log信息, 默认NO(不打印log).
@param value 设置为YES,SDK 会输出log信息可供调试参考. 除非特殊需要,否则发布产品时需改回NO.
@return void.
*/
+ (void)setLogEnabled:(BOOL)yesOrNo;
+ (BOOL)logEnable;
.m
static BOOL HNX_Log_Switch = NO;
#pragma mark - 自定义打印开关
+ (void)setLogEnabled:(BOOL)value {
HNX_Log_Switch = value;
}
+ (BOOL)logEnable {
return HNX_Log_Switch;
}
宏
//自定义打印
#define HNXLog(format, ...) {\
if ([你的类 logEnable]) {\
NSLog(@"[Ablecloud]: %s():%d " format, __func__, __LINE__, ##__VA_ARGS__);\
}\
}\
这个宏定义可以放在任务地方, 我是单独创建了一个header
文件来存放, 你也可以放在.pch
或者任意头文件中.
自定义打印默认是关闭, 你也可以通过改变HNX_Log_Switch
的初始值来默认开启
使用
- (void)viewDidLoad {
[super viewDidLoad];
HNXLog(@"自定义打印1");
HNXLog(@"自定义打印2");
HNXLog(@"自定义打印3");
//打开自定义打印开关
[customLog setLogEnabled:YES];
HNXLog(@"自定义打印4");
HNXLog(@"自定义打印5");
}
打印结果:
2016-07-19 11:08:31.525 CustomLogSwitch[17926:5409234] [HNX]: -[ViewController viewDidLoad]():27 自定义打印4
2016-07-19 11:08:31.526 CustomLogSwitch[17926:5409234] [HNX]: -[ViewController viewDidLoad]():28 自定义打印5
结尾
git上有一份代码,大家可以看一下 链接在这里