diff options
author | Ryan Wilson <wilsonryan@google.com> | 2018-04-25 09:45:36 -0400 |
---|---|---|
committer | Paul Beusterien <paulbeusterien@google.com> | 2018-04-25 06:45:36 -0700 |
commit | 260557691fae8ba34e262f480c632ab63b5133ee (patch) | |
tree | 7591bc9023e9c42e8a348758171a4fa41ed0cf19 /Firebase/Core/FIRLogger.m | |
parent | 98d665b7927da3c30f86919ca810f9f6fa6a354e (diff) |
Add counter for errors and warnings logged. (#1168)
* Moved writes outside of dispatch_async block.
Diffstat (limited to 'Firebase/Core/FIRLogger.m')
-rw-r--r-- | Firebase/Core/FIRLogger.m | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Firebase/Core/FIRLogger.m b/Firebase/Core/FIRLogger.m index faa0727..d4de2a0 100644 --- a/Firebase/Core/FIRLogger.m +++ b/Firebase/Core/FIRLogger.m @@ -57,6 +57,10 @@ const char *kFIRLoggerASLClientFacilityName = "com.firebase.app.logger"; const char *kFIRLoggerCustomASLMessageFormat = "$((Time)(J.3)) $(Sender)[$(PID)] <$((Level)(str))> $Message"; +/// Keys for the number of errors and warnings logged. +NSString *const kFIRLoggerErrorCountKey = @"/google/firebase/count_of_errors_logged"; +NSString *const kFIRLoggerWarningCountKey = @"/google/firebase/count_of_warnings_logged"; + static dispatch_once_t sFIRLoggerOnceToken; static aslclient sFIRLoggerClient; @@ -192,6 +196,7 @@ BOOL FIRIsLoggableLevel(FIRLoggerLevel loggerLevel, BOOL analyticsComponent) { #ifdef DEBUG void FIRResetLogger() { sFIRLoggerOnceToken = 0; + FIRResetNumberOfIssuesLogged(); [[NSUserDefaults standardUserDefaults] removeObjectForKey:kFIRPersistedDebugModeKey]; } @@ -238,6 +243,17 @@ void FIRLogBasic(FIRLoggerLevel level, dispatch_async(sFIRClientQueue, ^{ asl_log(sFIRLoggerClient, NULL, level, "%s", logMsg.UTF8String); }); + + // Keep count of how many errors and warnings are triggered. + if (level == FIRLoggerLevelError) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSInteger errorCount = [defaults integerForKey:kFIRLoggerErrorCountKey]; + [defaults setInteger:errorCount + 1 forKey:kFIRLoggerErrorCountKey]; + } else if (level == FIRLoggerLevelWarning) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSInteger warningCount = [defaults integerForKey:kFIRLoggerWarningCountKey]; + [defaults setInteger:warningCount + 1 forKey:kFIRLoggerWarningCountKey]; + } } #pragma clang diagnostic pop @@ -265,6 +281,23 @@ FIR_LOGGING_FUNCTION(Debug) #undef FIR_MAKE_LOGGER +#pragma mark - Number of errors and warnings + +NSInteger FIRNumberOfErrorsLogged(void) { + return [[NSUserDefaults standardUserDefaults] integerForKey:kFIRLoggerErrorCountKey]; +} + +NSInteger FIRNumberOfWarningsLogged(void) { + return [[NSUserDefaults standardUserDefaults] integerForKey:kFIRLoggerWarningCountKey]; +} + +void FIRResetNumberOfIssuesLogged(void) { + [[NSUserDefaults standardUserDefaults] setInteger:0 forKey:kFIRLoggerErrorCountKey]; + [[NSUserDefaults standardUserDefaults] setInteger:0 forKey:kFIRLoggerWarningCountKey]; +} + +#pragma mark - FIRLoggerWrapper + @implementation FIRLoggerWrapper + (void)logWithLevel:(FIRLoggerLevel)level |