aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firebase/Core/FIRLogger.m
diff options
context:
space:
mode:
authorGravatar Ryan Wilson <wilsonryan@google.com>2018-04-25 09:45:36 -0400
committerGravatar Paul Beusterien <paulbeusterien@google.com>2018-04-25 06:45:36 -0700
commit260557691fae8ba34e262f480c632ab63b5133ee (patch)
tree7591bc9023e9c42e8a348758171a4fa41ed0cf19 /Firebase/Core/FIRLogger.m
parent98d665b7927da3c30f86919ca810f9f6fa6a354e (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.m33
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