PBLogLocalTools.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. //
  2. // PBLogLocalTools.h
  3. // PBSDK
  4. //
  5. // Created by LStar on 2025/1/16.
  6. //
  7. #import <Foundation/Foundation.h>
  8. typedef NS_ENUM(NSUInteger, PBLogFlag) {
  9. PBLogFlagError = (1 << 0),
  10. PBLogFlagWarning = (1 << 1),
  11. PBLogFlagInfo = (1 << 2),
  12. PBLogFlagDebug = (1 << 3),
  13. PBLogFlagVerbose = (1 << 4)
  14. };
  15. typedef NS_ENUM(NSUInteger, PBLogLevel) {
  16. PBLogLevelOff = 0,
  17. PBLogLevelError = (PBLogFlagError),
  18. PBLogLevelWarning = (PBLogLevelError | PBLogFlagWarning),
  19. PBLogLevelInfo = (PBLogLevelWarning | PBLogFlagInfo),
  20. PBLogLevelDebug = (PBLogLevelInfo | PBLogFlagDebug),
  21. PBLogLevelVerbose = (PBLogLevelDebug | PBLogFlagVerbose),
  22. PBLogLevelAll = NSUIntegerMax
  23. };
  24. #define PB_LOG_MACRO(isAsynchronous, flg, ctx, atag, fnct, frmt, ...) \
  25. [[PBLogLocalTools sharedTools] log : isAsynchronous \
  26. flag : flg \
  27. context : ctx \
  28. file : __FILE__ \
  29. function : fnct \
  30. line : __LINE__ \
  31. tag : atag \
  32. format : (frmt), ##__VA_ARGS__]
  33. #define PBLogError(frmt, ...) PB_LOG_MACRO(NO, PBLogFlagError, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__)
  34. #define PBLogWarn(frmt, ...) PB_LOG_MACRO(YES, PBLogFlagWarning, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__)
  35. #define PBLogInfo(frmt, ...) PB_LOG_MACRO(YES, PBLogFlagInfo, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__)
  36. #define PBLogDebug(frmt, ...) PB_LOG_MACRO(YES, PBLogFlagDebug, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__)
  37. #define PBLogVerbose(frmt, ...) PB_LOG_MACRO(YES, PBLogFlagVerbose, 0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__)
  38. @interface PBLogLocalTools : NSObject
  39. ///是否启用日志
  40. @property (nonatomic,assign)BOOL enable;
  41. ///使用控制台打印 就不会记录日志
  42. @property (nonatomic,assign)BOOL isUseConsole;
  43. ///工具
  44. + (instancetype)sharedTools;
  45. ///清空日志
  46. - (BOOL)clearLogs;
  47. ///日志存放地址
  48. - (NSString *)logFilePath;
  49. ///写入日志
  50. - (void)log:(BOOL)asynchronous
  51. flag:(PBLogFlag)flag
  52. context:(NSInteger)context
  53. file:(const char *)file
  54. function:(const char *)function
  55. line:(NSUInteger)line
  56. tag:(id)tag
  57. format:(NSString *)format, ...;
  58. @end