使用全局函数自定义NSLog ,用于SDK
2022-03-03 本文已影响0人
Dolway
#import <UIKit/UIKit.h>
#ifndef DCHLog_h
#define DCHLog_h
static inline void DCHLog1(BOOL print, NSString *format, ...) {
if (!print) {
return;
}
__block va_list arg_list;
va_start (arg_list, format);
NSString *formattedString = [[NSString alloc] initWithFormat:format arguments:arg_list];
va_end(arg_list);
NSLog(@"[dch]: %@", formattedString);
}
static inline void DCHLog(NSString *format, ...) {
__block va_list arg_list;
va_start (arg_list, format);
NSString *formattedString = [[NSString alloc] initWithFormat:format arguments:arg_list];
va_end(arg_list);
NSLog(@"[dch]: %@", formattedString);
}
#ifdef DCH_LOG
#define duerDebug(...) DCHLog(__VA_ARGS__)
#else
#define DLINE() __LINE__
#define DFUNC() __PRETTY_FUNCTION__
#define duerDebug(...)
#define duerDebug1(print,fmt,...) DCHLog1(print,(@"%s 「line %d」" fmt) ,__PRETTY_FUNCTION__ , __LINE__ ,##__VA_ARGS__ )
#endif
#endif /* DCHLog_h */
普通项目中 因为可以直接使用宏,简单做如下定义即可使用
#ifdef DEBUG
//##:用于将带参数的宏定义中将两个子串(token)联接起来,从而形成一个新的子串
#define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#define DLog(...)
#endif