소스 검색

Add FIRLoggerLevelToOSLogType

Andrew Heard 1 년 전
부모
커밋
0e361e5a0e
3개의 변경된 파일30개의 추가작업 그리고 5개의 파일을 삭제
  1. 3 1
      FirebaseCore/Extension/FIRLogger.h
  2. 17 1
      FirebaseCore/Sources/FIRLogger.m
  3. 10 3
      FirebaseSharedSwift/Sources/FirebaseLogger.swift

+ 3 - 1
FirebaseCore/Extension/FIRLogger.h

@@ -72,9 +72,11 @@ void FIRSetLoggerLevel(FIRLoggerLevel loggerLevel);
  */
 BOOL FIRIsLoggableLevel(FIRLoggerLevel loggerLevel, BOOL analyticsComponent);
 
+extern os_log_type_t FIRLoggerLevelToOSLogType(FIRLoggerLevel level);
+
 extern NSString *FIRLogMessageCode(NSString *categoryID, NSInteger messageID);
 
-extern NSString *FIRLogPrefix(NSString *category, NSString *categoryID, NSString *messageID);
+extern NSString *FIRLogPrefix(NSString *category, NSString *categoryID, NSInteger messageID);
 
 extern os_log_t FIRLogOSLogObject(NSString *category);
 

+ 17 - 1
FirebaseCore/Sources/FIRLogger.m

@@ -124,11 +124,27 @@ __attribute__((no_sanitize("thread"))) BOOL FIRIsLoggableLevel(FIRLoggerLevel lo
   return GULIsLoggableLevel((GULLoggerLevel)loggerLevel);
 }
 
+extern os_log_type_t FIRLoggerLevelToOSLogType(FIRLoggerLevel level) {
+  // TODO: Replace with call to GoogleUtilities, e.g., GULLoggerLevelToOSLogType(level)
+  // This implementation is for prototyping purposes only.
+  switch (level) {
+    case FIRLoggerLevelError:
+      return OS_LOG_TYPE_ERROR;
+    case FIRLoggerLevelWarning:
+    case FIRLoggerLevelNotice:
+      return OS_LOG_TYPE_DEFAULT;
+    case FIRLoggerLevelInfo:
+      return OS_LOG_TYPE_INFO;
+    case FIRLoggerLevelDebug:
+      return OS_LOG_TYPE_DEBUG;
+  }
+}
+
 NSString *FIRLogMessageCode(NSString *categoryID, NSInteger messageID) {
   return [NSString stringWithFormat:@"I-%@%06ld", categoryID, (long)messageID];
 }
 
-NSString *FIRLogPrefix(NSString *category, NSString *categoryID, NSString *messageID) {
+NSString *FIRLogPrefix(NSString *category, NSString *categoryID, NSInteger messageID) {
   // TODO: Replace with call to GoogleUtilities, e.g., GULOSLogPrefix(category, messageID)
   // This implementation is for prototyping purposes only.
   return [NSString stringWithFormat:@"%@ - %@[%@]", FIRFirebaseVersion(), category,

+ 10 - 3
FirebaseSharedSwift/Sources/FirebaseLogger.swift

@@ -97,10 +97,18 @@ public class FirebaseLogger {
   ///
   /// - Parameters:
   ///   - level: The logging level to check.
-  public func isLoggableLevel(_ level: FirebaseLoggerLevel) -> Bool {
+  public static func isLoggableLevel(_ level: FirebaseLoggerLevel) -> Bool {
     FIRIsLoggableLevel(level, false)
   }
 
+  /// Returns the `OSLogType` equivalent of the specified `FirebaseLoggerLevel`.
+  ///
+  /// - Parameters:
+  ///   - level: The desired Firebase logging level.
+  public static func osLogType(_ level: FirebaseLoggerLevel) -> OSLogType {
+    return FIRLoggerLevelToOSLogType(level)
+  }
+
   /// Returns the prefix that should be prepended to log messages when using OSLog directly.
   ///
   /// - Important: This prefix is added automatically when using the logging methods `notice`,
@@ -109,8 +117,7 @@ public class FirebaseLogger {
   /// - Parameters:
   ///   - messageID: A six digit integer message identifier that is unique within the category.
   public func messagePrefix(messageID: Int) -> String {
-    let code = FIRLogMessageCode(categoryIdentifier, messageID)
-    return FIRLogPrefix(category, categoryIdentifier, code)
+    return FIRLogPrefix(category, categoryIdentifier, messageID)
   }
 
   /// Returns the log object that should be used when using OSLog directly.