使用全局函数自定义NSLog ,用于SDK

#import 

#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

你可能感兴趣的:(使用全局函数自定义NSLog ,用于SDK)