Skip to content

Commit 25bd9e0

Browse files
maksymmalyhinCorrob
authored andcommitted
Revert "GULLogger - count errors and warnigns" (#2714)
* Revert "GULLogger: logged issue counting concurrency issue fix (#2627)" This reverts commit 961e9b0. * Revert "GULLogger - issue count synchronous getters (#2610)" This reverts commit c6da7d6. * Revert "GULLogger - count errors and warnigns (#2601)" This reverts commit 1e08a55.
1 parent b572eb4 commit 25bd9e0

File tree

3 files changed

+9
-188
lines changed

3 files changed

+9
-188
lines changed

GoogleUtilities/Example/Tests/Logger/GULLoggerTest.m

Lines changed: 9 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,13 @@
3232

3333
extern BOOL getGULLoggerDebugMode(void);
3434

35-
extern CFStringRef getGULLoggerUserDefaultsSuiteName(void);
36-
extern dispatch_queue_t getGULLoggerCounterQueue(void);
37-
3835
static NSString *const kMessageCode = @"I-COR000001";
3936

4037
@interface GULLoggerTest : XCTestCase
4138

4239
@property(nonatomic) NSString *randomLogString;
43-
@property(nonatomic) NSUserDefaults *loggerDefaults;
40+
41+
@property(nonatomic, strong) NSUserDefaults *defaults;
4442

4543
@end
4644

@@ -50,18 +48,14 @@ - (void)setUp {
5048
[super setUp];
5149
GULResetLogger();
5250

53-
self.loggerDefaults = [[NSUserDefaults alloc]
54-
initWithSuiteName:CFBridgingRelease(getGULLoggerUserDefaultsSuiteName())];
51+
// Stub NSUserDefaults for cleaner testing.
52+
_defaults = [[NSUserDefaults alloc] initWithSuiteName:@"com.google.logger_test"];
5553
}
5654

5755
- (void)tearDown {
58-
// Make sure all async operations have finished before starting a new test.
59-
[self drainQueue:getGULClientQueue()];
60-
[self drainQueue:getGULLoggerCounterQueue()];
61-
62-
self.loggerDefaults = nil;
63-
6456
[super tearDown];
57+
58+
_defaults = nil;
6559
}
6660

6761
- (void)testMessageCodeFormat {
@@ -159,61 +153,17 @@ - (void)testGULLoggerLevelValues {
159153
XCTAssertEqual(GULLoggerLevelDebug, ASL_LEVEL_DEBUG);
160154
}
161155

162-
- (void)testGetErrorWarningNumberBeforeLogDontCrash {
163-
GULResetLogger();
164-
165-
XCTAssertNoThrow(GULNumberOfErrorsLogged());
166-
XCTAssertNoThrow(GULNumberOfWarningsLogged());
167-
}
168-
169-
- (void)testErrorNumberIncrement {
170-
[self.loggerDefaults setInteger:10 forKey:kGULLoggerErrorCountKey];
171-
172-
GULLogError(@"my service", NO, kMessageCode, @"Message.");
173-
174-
[self drainQueue:getGULLoggerCounterQueue()];
175-
XCTAssertEqual(GULNumberOfErrorsLogged(), 11);
176-
}
177-
178-
- (void)testWarningNumberIncrement {
179-
[self.loggerDefaults setInteger:5 forKey:kGULLoggerWarningCountKey];
180-
181-
GULLogWarning(@"my service", NO, kMessageCode, @"Message.");
182-
183-
[self drainQueue:getGULLoggerCounterQueue()];
184-
XCTAssertEqual(GULNumberOfWarningsLogged(), 6);
185-
}
186-
187-
- (void)testResetIssuesCount {
188-
[self.loggerDefaults setInteger:3 forKey:kGULLoggerErrorCountKey];
189-
[self.loggerDefaults setInteger:4 forKey:kGULLoggerWarningCountKey];
190-
191-
GULResetNumberOfIssuesLogged();
192-
193-
XCTAssertEqual(GULNumberOfErrorsLogged(), 0);
194-
XCTAssertEqual(GULNumberOfWarningsLogged(), 0);
195-
}
196-
197-
- (void)testNumberOfIssuesLoggedNoDeadlock {
198-
[self dispatchSyncNestedDispatchCount:100
199-
queue:getGULLoggerCounterQueue()
200-
block:^{
201-
XCTAssertNoThrow(GULNumberOfErrorsLogged());
202-
XCTAssertNoThrow(GULNumberOfWarningsLogged());
203-
}];
204-
}
205-
206156
// Helper functions.
207157
- (BOOL)logExists {
208-
[self drainQueue:getGULClientQueue()];
158+
[self drainGULClientQueue];
209159
NSString *correctMsg =
210160
[NSString stringWithFormat:@"%@[%@] %@", @"my service", kMessageCode, self.randomLogString];
211161
return [self messageWasLogged:correctMsg];
212162
}
213163

214-
- (void)drainQueue:(dispatch_queue_t)queue {
164+
- (void)drainGULClientQueue {
215165
dispatch_semaphore_t workerSemaphore = dispatch_semaphore_create(0);
216-
dispatch_barrier_async(queue, ^{
166+
dispatch_async(getGULClientQueue(), ^{
217167
dispatch_semaphore_signal(workerSemaphore);
218168
});
219169
dispatch_semaphore_wait(workerSemaphore, DISPATCH_TIME_FOREVER);
@@ -241,19 +191,5 @@ - (BOOL)messageWasLogged:(NSString *)message {
241191
#pragma clang pop
242192
}
243193

244-
- (void)dispatchSyncNestedDispatchCount:(NSInteger)count
245-
queue:(dispatch_queue_t)queue
246-
block:(dispatch_block_t)block {
247-
if (count < 0) {
248-
return;
249-
}
250-
251-
dispatch_sync(queue, ^{
252-
[self dispatchSyncNestedDispatchCount:count - 1 queue:queue block:block];
253-
block();
254-
NSLog(@"%@, depth: %ld", NSStringFromSelector(_cmd), (long)count);
255-
});
256-
}
257-
258194
@end
259195
#endif

GoogleUtilities/Logger/GULLogger.m

Lines changed: 0 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@
1919
#import <GoogleUtilities/GULAppEnvironmentUtil.h>
2020
#import "Public/GULLoggerLevel.h"
2121

22-
NSString *const kGULLoggerErrorCountKey = @"kGULLoggerErrorCountKey";
23-
NSString *const kGULLoggerWarningCountKey = @"kGULLoggerWarningCountKey";
24-
2522
/// ASL client facility name used by GULLogger.
2623
const char *kGULLoggerASLClientFacilityName = "com.google.utilities.logger";
2724

@@ -46,8 +43,6 @@
4643
static NSRegularExpression *sMessageCodeRegex;
4744
#endif
4845

49-
void GULIncrementLogCountForLevel(GULLoggerLevel level);
50-
5146
void GULLoggerInitializeASL(void) {
5247
dispatch_once(&sGULLoggerOnceToken, ^{
5348
NSInteger majorOSVersion = [[GULAppEnvironmentUtil systemVersion] integerValue];
@@ -154,10 +149,6 @@ void GULLogBasic(GULLoggerLevel level,
154149
NSString *message,
155150
va_list args_ptr) {
156151
GULLoggerInitializeASL();
157-
158-
// Keep count of how many errors and warnings are triggered.
159-
GULIncrementLogCountForLevel(level);
160-
161152
if (!(level <= sGULLoggerMaximumLevel || sGULLoggerDebugMode || forceLog)) {
162153
return;
163154
}
@@ -203,85 +194,6 @@ void GULLogBasic(GULLoggerLevel level,
203194

204195
#undef GUL_MAKE_LOGGER
205196

206-
#pragma mark - User defaults
207-
208-
// NSUserDefaults cannot be used due to a bug described in GULUserDefaults
209-
// GULUserDefaults cannot be used because GULLogger is a dependency for GULUserDefaults
210-
// We have to use C API direclty here
211-
212-
CFStringRef getGULLoggerUserDefaultsSuiteName(void) {
213-
return (__bridge CFStringRef) @"GoogleUtilities.Logger.GULLogger";
214-
}
215-
216-
NSInteger GULGetUserDefaultsIntegerForKey(NSString *key) {
217-
id value = (__bridge_transfer id)CFPreferencesCopyAppValue((__bridge CFStringRef)key,
218-
getGULLoggerUserDefaultsSuiteName());
219-
if (![value isKindOfClass:[NSNumber class]]) {
220-
return 0;
221-
}
222-
223-
return [(NSNumber *)value integerValue];
224-
}
225-
226-
void GULLoggerUserDefaultsSetIntegerForKey(NSInteger count, NSString *key) {
227-
NSNumber *countNumber = @(count);
228-
CFPreferencesSetAppValue((__bridge CFStringRef)key, (__bridge CFNumberRef)countNumber,
229-
getGULLoggerUserDefaultsSuiteName());
230-
CFPreferencesAppSynchronize(getGULLoggerUserDefaultsSuiteName());
231-
}
232-
233-
#pragma mark - Number of errors and warnings
234-
235-
dispatch_queue_t getGULLoggerCounterQueue(void) {
236-
static dispatch_queue_t queue;
237-
static dispatch_once_t onceToken;
238-
dispatch_once(&onceToken, ^{
239-
queue =
240-
dispatch_queue_create("GoogleUtilities.GULLogger.counterQueue", DISPATCH_QUEUE_CONCURRENT);
241-
});
242-
243-
return queue;
244-
}
245-
246-
NSInteger GULSyncGetUserDefaultsIntegerForKey(NSString *key) {
247-
__block NSInteger integerValue = 0;
248-
dispatch_sync(getGULLoggerCounterQueue(), ^{
249-
integerValue = GULGetUserDefaultsIntegerForKey(key);
250-
});
251-
252-
return integerValue;
253-
}
254-
255-
NSInteger GULNumberOfErrorsLogged(void) {
256-
return GULSyncGetUserDefaultsIntegerForKey(kGULLoggerErrorCountKey);
257-
}
258-
259-
NSInteger GULNumberOfWarningsLogged(void) {
260-
return GULSyncGetUserDefaultsIntegerForKey(kGULLoggerWarningCountKey);
261-
}
262-
263-
void GULResetNumberOfIssuesLogged(void) {
264-
dispatch_barrier_async(getGULLoggerCounterQueue(), ^{
265-
GULLoggerUserDefaultsSetIntegerForKey(0, kGULLoggerErrorCountKey);
266-
GULLoggerUserDefaultsSetIntegerForKey(0, kGULLoggerWarningCountKey);
267-
});
268-
}
269-
270-
void GULIncrementUserDefaultsIntegerForKey(NSString *key) {
271-
NSInteger value = GULGetUserDefaultsIntegerForKey(key);
272-
GULLoggerUserDefaultsSetIntegerForKey(value + 1, key);
273-
}
274-
275-
void GULIncrementLogCountForLevel(GULLoggerLevel level) {
276-
dispatch_barrier_async(getGULLoggerCounterQueue(), ^{
277-
if (level == GULLoggerLevelError) {
278-
GULIncrementUserDefaultsIntegerForKey(kGULLoggerErrorCountKey);
279-
} else if (level == GULLoggerLevelWarning) {
280-
GULIncrementUserDefaultsIntegerForKey(kGULLoggerWarningCountKey);
281-
}
282-
});
283-
}
284-
285197
#pragma mark - GULLoggerWrapper
286198

287199
@implementation GULLoggerWrapper

GoogleUtilities/Logger/Private/GULLogger.h

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,6 @@ NS_ASSUME_NONNULL_BEGIN
2525
*/
2626
typedef NSString *const GULLoggerService;
2727

28-
/**
29-
* The key used to store the logger's error count.
30-
*/
31-
extern NSString *const kGULLoggerErrorCountKey;
32-
33-
/**
34-
* The key used to store the logger's warning count.
35-
*/
36-
extern NSString *const kGULLoggerWarningCountKey;
37-
3828
#ifdef __cplusplus
3929
extern "C" {
4030
#endif // __cplusplus
@@ -139,23 +129,6 @@ extern void GULLogDebug(GULLoggerService service,
139129
NSString *message,
140130
...) NS_FORMAT_FUNCTION(4, 5);
141131

142-
/**
143-
* Retrieve the number of errors that have been logged since the stat was last reset.
144-
* Calling this method can be comparably expensive, so it should not be called from main thread.
145-
*/
146-
extern NSInteger GULNumberOfErrorsLogged(void);
147-
148-
/**
149-
* Retrieve the number of warnings that have been logged since the stat was last reset.
150-
* Calling this method can be comparably expensive, so it should not be called from main thread.
151-
*/
152-
extern NSInteger GULNumberOfWarningsLogged(void);
153-
154-
/**
155-
* Reset number of errors and warnings that have been logged to 0.
156-
*/
157-
extern void GULResetNumberOfIssuesLogged(void);
158-
159132
#ifdef __cplusplus
160133
} // extern "C"
161134
#endif // __cplusplus

0 commit comments

Comments
 (0)