-
Notifications
You must be signed in to change notification settings - Fork 3
/
ZLyLogger.m
118 lines (100 loc) · 3.26 KB
/
ZLyLogger.m
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
//
// ZLyLogger.m
// ZLyLogger
//
// Created by leleyinhangjia on 2019/4/2.
// Copyright © 2019 zhengleyin. All rights reserved.
//
#import "ZLyLogger.h"
NSString *const ZLyLoggerDomainCURL = @"LOG_CURL";
NSString *const ZLyLoggerDomainNetwork = @"LOG_NETWORK";
NSString *const ZLyLoggerDomainStorage = @"LOG_STORAGE";
NSString *const ZLyLoggerDomainIM = @"LOG_IM";
NSString *const ZLyLoggerDomainDefault = @"LOG_DEFAULT";
static NSMutableSet *loggerDomain = nil;
static NSUInteger loggerLevelMask = ZLyLoggerLevelNone;
static NSArray *loggerDomains = nil;
@implementation ZLyLogger
+ (void)load {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
loggerDomains = @[
ZLyLoggerDomainCURL,
ZLyLoggerDomainNetwork,
ZLyLoggerDomainIM,
ZLyLoggerDomainStorage,
ZLyLoggerDomainDefault
];
});
#ifdef DEBUG
[self setAllLogsEnabled:YES];
#else
[self setAllLogsEnabled:NO];
#endif
}
+ (void)setAllLogsEnabled:(BOOL)enabled {
if (enabled) {
for (NSString *loggerDomain in loggerDomains) {
[ZLyLogger addLoggerDomain:loggerDomain];
}
[ZLyLogger setLoggerLevelMask:ZLyLoggerLevelAll];
} else {
for (NSString *loggerDomain in loggerDomains) {
[ZLyLogger removeLoggerDomain:loggerDomain];
}
[ZLyLogger setLoggerLevelMask:ZLyLoggerLevelNone];
}
[self setCertificateInspectionEnabled:enabled];
}
+ (void)setCertificateInspectionEnabled:(BOOL)enabled {
if (enabled) {
setenv("CURL_INSPECT_CERT", "YES", 1);
} else {
unsetenv("CURL_INSPECT_CERT");
}
}
+ (void)setLoggerLevelMask:(NSUInteger)levelMask {
loggerLevelMask = levelMask;
}
+ (void)addLoggerDomain:(NSString *)domain {
if (!loggerDomain) {
loggerDomain = [[NSMutableSet alloc] init];
}
[loggerDomain addObject:domain];
}
+ (void)removeLoggerDomain:(NSString *)domain {
[loggerDomain removeObject:domain];
}
+ (BOOL)levelEnabled:(ZLyLoggerLevel)level {
return loggerLevelMask & level;
}
+ (BOOL)containDomain:(NSString *)domain {
return [loggerDomain containsObject:domain];
}
+ (void)logFunc:(const char *)func line:(int)line domain:(NSString *)domain level:(ZLyLoggerLevel)level message:(NSString *)fmt, ... {
if (!domain || [loggerDomain containsObject:domain]) {
if (level & loggerLevelMask) {
NSString *levelString = nil;
switch (level) {
case ZLyLoggerLevelInfo:
levelString = @"💙INFO";
break;
case ZLyLoggerLevelDebug:
levelString = @"💚DEBUG";
break;
case ZLyLoggerLevelError:
levelString = @"❤️ERROR";
break;
default:
levelString = @"🧡UNKNOW";
break;
}
va_list args;
va_start(args, fmt);
NSString *message = [[NSString alloc] initWithFormat:fmt arguments:args];
va_end(args);
NSLog(@"[%@] %s [Line %d] %@", levelString, func, line, message);
}
}
}
@end