소스 검색

[Core] Add logging level getter to FIRConfiguration (#13815)

Nick Cooke 1 년 전
부모
커밋
a1e4be7919

+ 10 - 1
FirebaseCore/Sources/FIRConfiguration.m

@@ -17,6 +17,7 @@
 #import "FirebaseCore/Sources/FIRAnalyticsConfiguration.h"
 
 extern void FIRSetLoggerLevel(FIRLoggerLevel loggerLevel);
+extern FIRLoggerLevel FIRGetLoggerLevel(void);
 
 @implementation FIRConfiguration
 
@@ -40,7 +41,15 @@ extern void FIRSetLoggerLevel(FIRLoggerLevel loggerLevel);
 - (void)setLoggerLevel:(FIRLoggerLevel)loggerLevel {
   NSAssert(loggerLevel <= FIRLoggerLevelMax && loggerLevel >= FIRLoggerLevelMin,
            @"Invalid logger level, %ld", (long)loggerLevel);
-  FIRSetLoggerLevel(loggerLevel);
+  @synchronized(self) {
+    FIRSetLoggerLevel(loggerLevel);
+  }
+}
+
+- (FIRLoggerLevel)loggerLevel {
+  @synchronized(self) {
+    return FIRGetLoggerLevel();
+  }
 }
 
 @end

+ 1 - 0
FirebaseCore/Sources/FIRLogger.m

@@ -87,6 +87,7 @@ __attribute__((no_sanitize("thread"))) void FIRSetAnalyticsDebugMode(BOOL analyt
 }
 
 FIRLoggerLevel FIRGetLoggerLevel(void) {
+  FIRLoggerInitialize();
   return (FIRLoggerLevel)GULGetLoggerLevel();
 }
 

+ 3 - 0
FirebaseCore/Sources/Public/FirebaseCore/FIRConfiguration.h

@@ -40,6 +40,9 @@ NS_SWIFT_NAME(FirebaseConfiguration)
  */
 - (void)setLoggerLevel:(FIRLoggerLevel)loggerLevel;
 
+/// Returns the logging level for internal Firebase logging.
+- (FIRLoggerLevel)loggerLevel;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 14 - 0
FirebaseCore/Tests/Unit/FIRConfigurationTest.m

@@ -28,4 +28,18 @@
   XCTAssertNotNil(config.analyticsConfiguration);
 }
 
+- (void)testGetDefaultLevel {
+  FIRConfiguration *config = [FIRConfiguration sharedInstance];
+  FIRLoggerLevel defaultLevel = [config loggerLevel];
+  XCTAssertEqual(defaultLevel, FIRLoggerLevelNotice);
+}
+
+- (void)testSetAndGet {
+  FIRConfiguration *config = [FIRConfiguration sharedInstance];
+  for (FIRLoggerLevel level = FIRLoggerLevelMin; level <= FIRLoggerLevelMax; level++) {
+    [config setLoggerLevel:level];
+    XCTAssertEqual([config loggerLevel], level);
+  }
+}
+
 @end