@@ -60,7 +60,32 @@ - (instancetype)init {
60
60
61
61
#pragma mark - Set adding / removing
62
62
63
+ #pragma Shared Instance
63
64
+ (void )addLoggers : (NSArray <id<SLLogger>> *)loggers {
65
+ [[self .class sharedController ] addLoggers: loggers];
66
+ }
67
+
68
+ + (void )addModules : (NSArray <SLFileModule *> *)modules {
69
+ [[self .class sharedController ] addModules: modules];
70
+ }
71
+
72
+ + (void )addFilters : (NSArray <SLLogFilterBlock> *)filters {
73
+ [[self .class sharedController ] addFilters: filters];
74
+ }
75
+
76
+ + (void )removeLoggers : (NSArray <id<SLLogger>> *)loggers {
77
+ [[self .class sharedController ] removeLoggers: loggers];
78
+ }
79
+
80
+ + (void )removeModules : (NSArray <SLFileModule *> *)modules {
81
+ [[self .class sharedController ] removeModules: modules];
82
+ }
83
+
84
+ + (void )removeFilters : (NSArray <SLLogFilterBlock> *)filters {
85
+ [[self .class sharedController ] removeFilters: filters];
86
+ }
87
+
88
+ - (void )addLoggers : (NSArray <id<SLLogger>> *)loggers {
64
89
dispatch_async ([self .class globalLogQueue ], ^{ @autoreleasepool {
65
90
for (id <SLLogger> logger in loggers) {
66
91
#ifndef DEBUG
@@ -76,19 +101,20 @@ + (void)addLoggers:(NSArray<id<SLLogger>> *)loggers {
76
101
}});
77
102
}
78
103
79
- + (void )addModules : (NSArray <SLFileModule *> *)modules {
104
+ #pragma Instance Methods
105
+ - (void )addModules : (NSArray <SLFileModule *> *)modules {
80
106
dispatch_async ([self .class globalLogQueue ], ^{ @autoreleasepool {
81
107
[[self .class sharedController ].mutableLogModules addObjectsFromArray: modules];
82
108
}});
83
109
}
84
110
85
- + (void )addFilters : (NSArray <SLLogFilterBlock> *)filters {
111
+ - (void )addFilters : (NSArray <SLLogFilterBlock> *)filters {
86
112
dispatch_async ([self .class globalLogQueue ], ^{ @autoreleasepool {
87
113
[[self .class sharedController ].mutableLogFilters addObjectsFromArray: filters];
88
114
}});
89
115
}
90
116
91
- + (void )removeLoggers : (NSArray <id<SLLogger>> *)loggers {
117
+ - (void )removeLoggers : (nonnull NSArray <id<SLLogger>> *)loggers {
92
118
dispatch_async ([self .class globalLogQueue ], ^{
93
119
for (id <SLLogger> logger in loggers) {
94
120
[logger teardownLogger ];
@@ -97,15 +123,15 @@ + (void)removeLoggers:(NSArray<id<SLLogger>> *)loggers {
97
123
});
98
124
}
99
125
100
- + (void )removeModules : (NSArray <SLFileModule *> *)modules {
126
+ - (void )removeModules : (NSArray <SLFileModule *> *)modules {
101
127
dispatch_async ([self .class globalLogQueue ], ^{
102
128
for (SLFileModule *module in modules) {
103
129
[[self .class sharedController ].mutableLogModules removeObject: module];
104
130
}
105
131
});
106
132
}
107
133
108
- + (void )removeFilters : (NSArray <SLLogFilterBlock> *)filters {
134
+ - (void )removeFilters : (NSArray <SLLogFilterBlock> *)filters {
109
135
dispatch_async ([self .class globalLogQueue ], ^{
110
136
for (SLLogFilterBlock filter in filters) {
111
137
[[self .class sharedController ].mutableLogFilters removeObject: filter];
@@ -117,6 +143,10 @@ + (void)removeFilters:(NSArray<SLLogFilterBlock> *)filters {
117
143
#pragma mark - Log Level
118
144
119
145
+ (SLLogLevel)logLevelForFile : (NSString *)file {
146
+ return [[self .class sharedController ] logLevelForFile: file];
147
+ }
148
+
149
+ - (SLLogLevel)logLevelForFile : (NSString *)file {
120
150
for (SLFileModule *module in [self .class sharedController ].logModules ) {
121
151
if ([module containsFile: file]) {
122
152
return module.logLevel ;
@@ -151,6 +181,13 @@ - (void)setDefaultFormatBlock:(SLLogFormatBlock)defaultFormatBlock {
151
181
#pragma mark - Logging
152
182
153
183
+ (void )logStringWithLevel : (SLLogLevel)level fileName : (NSString *)fileName functionName : (NSString *)functionName line : (NSInteger )line message : (NSString *)message , ... {
184
+ va_list args;
185
+ va_start (args, message);
186
+
187
+ [[self .class sharedController ] logStringWithLevel: level fileName: fileName functionName: functionName line: line message: message, args];
188
+ }
189
+
190
+ - (void )logStringWithLevel : (SLLogLevel)level fileName : (NSString *)fileName functionName : (NSString *)functionName line : (NSInteger )line message : (NSString *)message , ... {
154
191
NSDate *timestamp = [NSDate date ];
155
192
NSArray *callstack = [NSThread callStackSymbols ];
156
193
#pragma clang diagnostic push
@@ -163,7 +200,7 @@ + (void)logStringWithLevel:(SLLogLevel)level fileName:(NSString *)fileName funct
163
200
NSString *format = [[NSString alloc ] initWithFormat: message arguments: args];
164
201
165
202
SLLog *log = [[SLLog alloc ] initWithMessage: format timestamp: timestamp level: level fileName: fileName functionName: functionName line: line queueLabel: currentQueueLabel callstack: callstack];
166
- [[ self sharedController ] sl_logMessage: log ];
203
+ [self sl_logMessage: log ];
167
204
}
168
205
169
206
- (void )sl_logMessage : (SLLog *)log {
0 commit comments