// // PBLogLocalTools.h // PBSDK // // Created by LStar on 2025/1/16. // #import typedef NS_ENUM(NSUInteger, PBLogFlag) { PBLogFlagError = (1 << 0), PBLogFlagWarning = (1 << 1), PBLogFlagInfo = (1 << 2), PBLogFlagDebug = (1 << 3), PBLogFlagVerbose = (1 << 4) }; typedef NS_ENUM(NSUInteger, PBLogLevel) { PBLogLevelOff = 0, PBLogLevelError = (PBLogFlagError), PBLogLevelWarning = (PBLogLevelError | PBLogFlagWarning), PBLogLevelInfo = (PBLogLevelWarning | PBLogFlagInfo), PBLogLevelDebug = (PBLogLevelInfo | PBLogFlagDebug), PBLogLevelVerbose = (PBLogLevelDebug | PBLogFlagVerbose), PBLogLevelAll = NSUIntegerMax }; #define PB_LOG_MACRO(isAsynchronous, flg, ctx, atag, fnct, frmt, ...) \ [[PBLogLocalTools sharedTools] log : isAsynchronous \ flag : flg \ context : ctx \ file : __FILE__ \ function : fnct \ line : __LINE__ \ tag : atag \ format : (frmt), ##__VA_ARGS__] #define PBLogError(frmt, ...) PB_LOG_MACRO(NO, PBLogFlagError, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__) #define PBLogWarn(frmt, ...) PB_LOG_MACRO(YES, PBLogFlagWarning, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__) #define PBLogInfo(frmt, ...) PB_LOG_MACRO(YES, PBLogFlagInfo, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__) #define PBLogDebug(frmt, ...) PB_LOG_MACRO(YES, PBLogFlagDebug, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__) #define PBLogVerbose(frmt, ...) PB_LOG_MACRO(YES, PBLogFlagVerbose, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__) @interface PBLogLocalTools : NSObject ///是否启用日志 @property (nonatomic,assign)BOOL enable; ///使用控制台打印 就不会记录日志 @property (nonatomic,assign)BOOL isUseConsole; ///工具 + (instancetype)sharedTools; ///清空日志 - (BOOL)clearLogs; ///日志存放地址 - (NSString *)logFilePath; ///写入日志 - (void)log:(BOOL)asynchronous flag:(PBLogFlag)flag context:(NSInteger)context file:(const char *)file function:(const char *)function line:(NSUInteger)line tag:(id)tag format:(NSString *)format, ...; @end