宽窄优行-由【嘉易行】项目成品而来
younger_times
2023-07-05 0d8f5fc8a516bfd07e425909e4a4432600572ee7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
//
//  UMCommonLogMacros.h
//  testUMCommonLog
//
//  Created by 张军华 on 2017/11/29.
//  Copyright © 2017年 张军华. All rights reserved.
//
 
#import <Foundation/Foundation.h>
 
#define USing_CommonLog_Reflection
 
#ifndef USing_CommonLog_Reflection
 
#import "UMCommonLogConfig.h"
 
/**
 *  根据等级打印日志
 *  @param component   打印对应的组件 @see UMCommonComponent
 *  @param logFlag     控制打印分级的枚举变量 @see UMCommonLogFlag
 *  @param file        打印日志的文件
 *  @param function    打印日志的函数
 *  @param line        打印的日志的行数
 *  @param format      需要打印的日志格式内容
 *  @param ...         可变参数
 *  @dicuss 本库不需要直接调用,可以用简易函数宏 @see UMCommonLogError,UMCommonLogWarn,UMCommonLogInfo,UMCommonLogDebug
 */
FOUNDATION_EXPORT void UMCommonLog(UMCommonComponent component,UMCommonLogFlag logFlag,const char* file,const char* function,NSUInteger line,NSString *format, ...) NS_FORMAT_FUNCTION(6,7);
 
 
//UMCommon的日志宏
//简易函数类似于系统的NSLog函数,线程安全
#define UMCommonLogError(format, ...)   UMCommonLog(UMCommonComponent_UMCommon,UMCommonLogFlagError,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonLogWarn(format, ...)   UMCommonLog(UMCommonComponent_UMCommon,UMCommonLogFlagWarning,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonLogInfo(format, ...)   UMCommonLog(UMCommonComponent_UMCommon,UMCommonLogFlagInfo,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonLogDebug(format, ...)   UMCommonLog(UMCommonComponent_UMCommon,UMCommonLogFlagDebug,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonLogVerbose(format, ...)   UMCommonLog(UMCommonComponent_UMCommon,UMCommonLogFlagVerbose,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
 
 
//UMAnalytics的日志宏
//简易函数类似于系统的NSLog函数,线程安全
#define UMAnalyticsLogError(format, ...)   UMCommonLog(UMCommonComponent_UMAnalytics,UMCommonLogFlagError,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMAnalyticsLogWarn(format, ...)   UMCommonLog(UMCommonComponent_UMAnalytics,UMCommonLogFlagWarning,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMAnalyticsLogInfo(format, ...)   UMCommonLog(UMCommonComponent_UMAnalytics,UMCommonLogFlagInfo,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMAnalyticsLogDebug(format, ...)   UMCommonLog(UMCommonComponent_UMAnalytics,UMCommonLogFlagDebug,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMAnalyticsLogVerbose(format, ...)   UMCommonLog(UMCommonComponent_UMAnalytics,UMCommonLogFlagVerbose,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
 
//UMPush 的日志宏
//简易函数类似于系统的NSLog函数,线程安全
#define UMPushLogError(format, ...)   UMCommonLog(UMCommonComponent_UMPush,UMCommonLogFlagError,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMPushLogWarn(format, ...)   UMCommonLog(UMCommonComponent_UMPush,UMCommonLogFlagWarning,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMPushLogInfo(format, ...)   UMCommonLog(UMCommonComponent_UMPush,UMCommonLogFlagInfo,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMPushLogDebug(format, ...)   UMCommonLog(UMCommonComponent_UMPush,UMCommonLogFlagDebug,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMPushLogVerbose(format, ...)   UMCommonLog(UMCommonComponent_UMPush,UMCommonLogFlagVerbose,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
 
//UMShare 的日志宏
//简易函数类似于系统的NSLog函数,线程安全
#define UMShareLogError(format, ...)   UMCommonLog(UMCommonComponent_UMShare,UMCommonLogFlagError,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMShareLogWarn(format, ...)   UMCommonLog(UMCommonComponent_UMShare,UMCommonLogFlagWarning,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMShareLogInfo(format, ...)   UMCommonLog(UMCommonComponent_UMShare,UMCommonLogFlagInfo,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMShareLogDebug(format, ...)   UMCommonLog(UMCommonComponent_UMShare,UMCommonLogFlagDebug,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMShareLogVerbose(format, ...)   UMCommonLog(UMCommonComponent_UMShare,UMCommonLogFlagVerbose,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
 
#else
 
#define UMCommonLog                         UMCommonLog##UMShareSuffix
#define UMCommonPrefixSubNameLog            UMCommonPrefixSubNameLog##UMShareSuffix
#define registerUMComponent                 registerUMComponent##UMShareSuffix
#define setUMCommonComponentLevel           setUMCommonComponentLevel##UMShareSuffix
#define getUMCommonLogManager               getUMCommonLogManager##UMShareSuffix
#define getMetaUMCommonLogManager           getMetaUMCommonLogManager##UMShareSuffix
#define checkUMCommonLogManager             checkUMCommonLogManager##UMShareSuffix
#define checkValidUMCommonLogLevel          checkValidUMCommonLogLevel##UMShareSuffix
#define doUMCommonLog                       doUMCommonLog##UMShareSuffix
#define doUMCommonPrefixSubNameLog          doUMCommonPrefixSubNameLog##UMShareSuffix
 
FOUNDATION_EXPORT BOOL registerUMComponent(NSInteger component,NSString* prefixName,NSString* componentVersion);
FOUNDATION_EXPORT BOOL setUMCommonComponentLevel(NSInteger component,NSUInteger componentLevel);
FOUNDATION_EXPORT void UMCommonLog(NSInteger component,NSInteger logFlag,const char* file,const char* function,NSUInteger line,NSString *format, ...) NS_FORMAT_FUNCTION(6,7);
FOUNDATION_EXPORT void UMCommonPrefixSubNameLog(NSInteger component,NSInteger logFlag,const char* prefixSubName,const char* file,const char* function,NSUInteger line,NSString *format, ...) NS_FORMAT_FUNCTION(7,8);
 
//获得UMCommonLog.bundle的国际化的字符串宏和对应的函数
#define  UMCommonLogTableNameForUMCommonUMShareSuffix  @"UMSocialPromptLocalizable"
#define  UMCommonLogBundleNameForUMCommonUMShareSuffix  @"UMCommonLog"
#define  UMCommonLogBundle   UMCommonLogBundle##UMShareSuffix
FOUNDATION_EXPORT NSBundle* UMCommonLogBundle();
#define UMLocalizedStringForUMCommonSuffix(key) NSLocalizedStringWithDefaultValue(key,UMCommonLogTableNameForUMCommonUMShareSuffix,UMCommonLogBundle(), @"", nil)
 
 
//UMCommon的日志宏
//简易函数类似于系统的NSLog函数,线程安全
#define UMCommonLogError(format, ...)       UMCommonLog(1,1,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonLogWarn(format, ...)        UMCommonLog(1,2,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonLogInfo(format, ...)        UMCommonLog(1,4,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonLogDebug(format, ...)       UMCommonLog(1,8,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonLogVerbose(format, ...)     UMCommonLog(1,16,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
 
//UMCommon的分级日志宏
#define UMCommonPrefixSubName   ".Network"
#define UMCommonPrefixSubNameLogError(format, ...)       UMCommonPrefixSubNameLog(1,1,UMCommonPrefixSubName,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonPrefixSubNameLogWarn(format, ...)       UMCommonPrefixSubNameLog(1,2,UMCommonPrefixSubName,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonPrefixSubNameLogInfo(format, ...)       UMCommonPrefixSubNameLog(1,4,UMCommonPrefixSubName,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonPrefixSubNameLogDebug(format, ...)       UMCommonPrefixSubNameLog(1,8,UMCommonPrefixSubName,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonPrefixSubNameLogVerbose(format, ...)       UMCommonPrefixSubNameLog(1,16,UMCommonPrefixSubName,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
 
#define UMCommonPrefixSubName1   ".Core"
#define UMCommonPrefixSubNameLogError1(format, ...)       UMCommonPrefixSubNameLog(1,1,UMCommonPrefixSubName1,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonPrefixSubNameLogWarn1(format, ...)       UMCommonPrefixSubNameLog(1,2,UMCommonPrefixSubName1,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonPrefixSubNameLogInfo1(format, ...)       UMCommonPrefixSubNameLog(1,4,UMCommonPrefixSubName1,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonPrefixSubNameLogDebug1(format, ...)       UMCommonPrefixSubNameLog(1,8,UMCommonPrefixSubName1,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonPrefixSubNameLogVerbose1(format, ...)       UMCommonPrefixSubNameLog(1,16,UMCommonPrefixSubName1,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
 
 
#define UMCommonPrefixSubNameLogError2(UMCommonPrefixSubName2,format, ...)       UMCommonPrefixSubNameLog(1,1,UMCommonPrefixSubName2,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonPrefixSubNameLogWarn2(UMCommonPrefixSubName2,format, ...)       UMCommonPrefixSubNameLog(1,2,UMCommonPrefixSubName2,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonPrefixSubNameLogInfo2(UMCommonPrefixSubName2,format, ...)       UMCommonPrefixSubNameLog(1,4,UMCommonPrefixSubName2,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonPrefixSubNameLogDebug2(UMCommonPrefixSubName2,format, ...)       UMCommonPrefixSubNameLog(1,8,UMCommonPrefixSubName2,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMCommonPrefixSubNameLogVerbose2(UMCommonPrefixSubName2,format, ...)       UMCommonPrefixSubNameLog(1,16,UMCommonPrefixSubName2,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
//UMAnalytics的日志宏
//简易函数类似于系统的NSLog函数,线程安全
#define UMAnalyticsLogError(format, ...)    UMCommonLog(2,1,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMAnalyticsLogWarn(format, ...)     UMCommonLog(2,2,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMAnalyticsLogInfo(format, ...)     UMCommonLog(2,4,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMAnalyticsLogDebug(format, ...)    UMCommonLog(2,8,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMAnalyticsLogVerbose(format, ...)  UMCommonLog(2,16,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
 
//UMPush 的日志宏
//简易函数类似于系统的NSLog函数,线程安全
#define UMPushLogError(format, ...)         UMCommonLog(3,1,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMPushLogWarn(format, ...)          UMCommonLog(3,2,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMPushLogInfo(format, ...)          UMCommonLog(3,4,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMPushLogDebug(format, ...)         UMCommonLog(3,8,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMPushLogVerbose(format, ...)       UMCommonLog(3,16,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
 
//UMShare 的日志宏
//简易函数类似于系统的NSLog函数,线程安全
#define UMShareLogError(format, ...)        UMCommonLog(4,1,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMShareLogWarn(format, ...)         UMCommonLog(4,2,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMShareLogInfo(format, ...)         UMCommonLog(4,4,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMShareLogDebug(format, ...)        UMCommonLog(4,8,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#define UMShareLogVerbose(format, ...)      UMCommonLog(4,16,__FILE__,__PRETTY_FUNCTION__,__LINE__,format,##__VA_ARGS__)
#endif