瀏覽代碼

ios: divert RN logs to our logger

j8
Saúl Ibarra Corretgé 5 年之前
父節點
當前提交
27205e3119
共有 2 個檔案被更改,包括 60 行新增1 行删除
  1. 1
    1
      ios/sdk/src/JitsiMeet.m
  2. 59
    0
      ios/sdk/src/ReactUtils.m

+ 1
- 1
ios/sdk/src/JitsiMeet.m 查看文件

@@ -53,7 +53,7 @@
53 53
         registerReactFatalErrorHandler();
54 54
 
55 55
         // Register a log handler for React.
56
-        registerReactLogHanler();
56
+        registerReactLogHandler();
57 57
     }
58 58
 
59 59
     return self;

+ 59
- 0
ios/sdk/src/ReactUtils.m 查看文件

@@ -92,3 +92,62 @@ void registerReactFatalErrorHandler() {
92 92
     }
93 93
 #endif
94 94
 }
95
+
96
+/**
97
+ * A `RTCLogFunction` implementation which uses CocoaLumberjack.
98
+ */
99
+RCTLogFunction _RCTLog
100
+    = ^(RCTLogLevel level, __unused RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message)
101
+{
102
+    // Convert RN log levels into Lumberjack's log flags.
103
+    //
104
+    DDLogFlag logFlag;
105
+    switch (level) {
106
+        case RCTLogLevelTrace:
107
+            logFlag = DDLogFlagDebug;
108
+            break;
109
+        case RCTLogLevelInfo:
110
+            logFlag = DDLogFlagInfo;
111
+            break;
112
+        case RCTLogLevelWarning:
113
+            logFlag = DDLogFlagWarning;
114
+            break;
115
+        case RCTLogLevelError:
116
+            logFlag = DDLogFlagError;
117
+            break;
118
+        case RCTLogLevelFatal:
119
+            logFlag = DDLogFlagError;
120
+            break;
121
+        default:
122
+            // Just in case more are added in the future.
123
+            logFlag = DDLogFlagInfo;
124
+            break;
125
+    }
126
+
127
+    // Build the message object we want to log.
128
+    //
129
+    DDLogMessage *logMessage
130
+        = [[DDLogMessage alloc] initWithMessage:message
131
+                                          level:LOG_LEVEL_DEF
132
+                                           flag:logFlag
133
+                                        context:0
134
+                                           file:fileName
135
+                                       function:nil
136
+                                           line:[lineNumber integerValue]
137
+                                            tag:nil
138
+                                        options:0
139
+                                      timestamp:nil];
140
+
141
+    // Log the message. Errors are logged synchronously, and other async, as the Lumberjack defaults.
142
+    //
143
+    [DDLog log:logFlag != DDLogFlagError
144
+       message:logMessage];
145
+};
146
+
147
+/**
148
+ * Helper function which registers a React Native log handler.
149
+ */
150
+void registerReactLogHandler() {
151
+    RCTSetLogFunction(_RCTLog);
152
+    RCTSetLogThreshold(RCTLogLevelInfo);
153
+}

Loading…
取消
儲存