美文网首页
使用全局函数自定义NSLog ,用于SDK

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

作者: Dolway | 来源:发表于2022-03-03 18:24 被阅读0次
    #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
    

    相关文章

      网友评论

          本文标题:使用全局函数自定义NSLog ,用于SDK

          本文链接:https://www.haomeiwen.com/subject/fojurrtx.html