ATContext.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // ATContext.h
  3. // ATrack
  4. //
  5. // Created by 卡迩 on 2018/4/23.
  6. // Copyright © 2018年 Alipay. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "ATLogger.h"
  10. #import "ATParameters.h"
  11. #import "ATAppenderMgr.h"
  12. #import "ATActionMgr.h"
  13. #import "ATConfigMgr.h"
  14. #import "AntLogSampleCenter.h"
  15. @class ATUploadMgr;
  16. extern NSString *const ATBaseLoggerName; /**< 默认Logger name*/
  17. extern NSString *const ATBehaviorLoggerName; /**< 行为埋点Logger name*/
  18. #ifdef SDK_IS4_ALIPAY
  19. extern NSString *const ATPerformanceLoggerName; /**< 性能埋点Logger name*/
  20. extern NSString *const ATDataFlowLoggerName; /**< 流量监控埋点Logger name*/
  21. extern NSString *const ATCrashLoggerName; /**< Crash埋点Logger name*/
  22. extern NSString *const ATMonitorLoggerName; /**< 性能管理埋点Logger name*/
  23. extern NSString *const ATLinkLoggerName; /**< 全链路监控埋点Logger name*/
  24. extern NSString *const ATEventLoggerName; /**< 事件管理埋点Logger name*/
  25. #endif
  26. extern NSString *const ATCustomLoggerName;
  27. /**
  28. * ATrack全局上下文
  29. */
  30. @interface ATContext : NSObject
  31. @property (class, nonatomic, strong) ATParameters *parameters; /**< 全局参数*/
  32. @property (class, nonatomic, strong) ATAppenderMgr *appenderMgr; /**< Appender管理器*/
  33. @property (class, nonatomic, strong) ATUploadMgr *uploadMgr; /**< Upload管理器*/
  34. @property (class, nonatomic, strong) ATActionMgr *actionMgr; /**< Action管理器*/
  35. @property (class, nonatomic, strong) ATConfigMgr *configMgr; /**< 策略管理器*/
  36. @property (class, nonatomic, strong) AntLogSampleCenter *sampleCenter; /**< 抽样控制管理器*/
  37. /**
  38. * ATContext单例
  39. */
  40. + (ATContext *)sharedInstance;
  41. /**
  42. * 设置 \c name 对应的Logger实例
  43. * @param logger ATLogger子类
  44. * @param name Logger名
  45. */
  46. - (void)setLogger:(ATLogger *)logger forName:(NSString *)name;
  47. /**
  48. * 根据名称获取Logger实例
  49. * @param name Logger名称
  50. */
  51. - (ATLogger *)loggerForName:(NSString *)name;
  52. @end
  53. #ifdef __cplusplus
  54. extern "C" {
  55. #endif
  56. /**
  57. * 获取ATContext实例
  58. */
  59. ATContext * ATContextGet(void);
  60. #ifdef __cplusplus
  61. }
  62. #endif