6
6
7
7
#import " InstabugReactBridge.h"
8
8
#import < Instabug/Instabug.h>
9
+ #import < asl.h>
10
+ #import < React/RCTLog.h>
11
+ #import < os/log.h>
9
12
10
13
@implementation InstabugReactBridge
11
14
@@ -28,6 +31,8 @@ - (dispatch_queue_t)methodQueue {
28
31
29
32
RCT_EXPORT_METHOD (startWithToken:(NSString *)token invocationEvent:(IBGInvocationEvent)invocationEvent) {
30
33
[Instabug startWithToken: token invocationEvent: invocationEvent];
34
+ RCTAddLogFunction (InstabugReactLogFunction);
35
+ RCTSetLogThreshold (RCTLogLevelInfo);
31
36
[Instabug setCrashReportingEnabled: NO ];
32
37
[Instabug setNetworkLoggingEnabled: NO ];
33
38
}
@@ -433,4 +438,62 @@ - (NSDictionary *)constantsToExport
433
438
};
434
439
};
435
440
441
+ + (BOOL )iOSVersionIsLessThan : (NSString *)iOSVersion {
442
+ return [iOSVersion compare: [UIDevice currentDevice ].systemVersion options: NSNumericSearch] == NSOrderedDescending;
443
+ };
444
+
445
+ RCTLogFunction InstabugReactLogFunction = ^(
446
+ RCTLogLevel level,
447
+ __unused RCTLogSource source,
448
+ NSString *fileName,
449
+ NSNumber *lineNumber,
450
+ NSString *message
451
+ )
452
+ {
453
+ NSString *log = RCTFormatLog ([NSDate date ], level, fileName, lineNumber, message);
454
+
455
+
456
+ NSLog (@" Instabug - REACT LOG: %s " , log.UTF8String );
457
+
458
+ if ([InstabugReactBridge iOSVersionIsLessThan: @" 10.0" ]) {
459
+ int aslLevel;
460
+ switch (level) {
461
+ case RCTLogLevelTrace:
462
+ aslLevel = ASL_LEVEL_DEBUG;
463
+ break ;
464
+ case RCTLogLevelInfo:
465
+ aslLevel = ASL_LEVEL_NOTICE;
466
+ break ;
467
+ case RCTLogLevelWarning:
468
+ aslLevel = ASL_LEVEL_WARNING;
469
+ break ;
470
+ case RCTLogLevelError:
471
+ aslLevel = ASL_LEVEL_ERR;
472
+ break ;
473
+ case RCTLogLevelFatal:
474
+ aslLevel = ASL_LEVEL_CRIT;
475
+ break ;
476
+ }
477
+ asl_log (NULL , NULL , aslLevel, " %s " , message.UTF8String );
478
+ } else {
479
+ switch (level) {
480
+ case RCTLogLevelTrace:
481
+ os_log (OS_LOG_DEFAULT, " %s " , [message UTF8String ]);
482
+ break ;
483
+ case RCTLogLevelInfo:
484
+ os_log_with_type (OS_LOG_DEFAULT, OS_LOG_TYPE_INFO, " %s " , [message UTF8String ]);
485
+ break ;
486
+ case RCTLogLevelWarning:
487
+ os_log (OS_LOG_DEFAULT, " %s " , [message UTF8String ]);
488
+ break ;
489
+ case RCTLogLevelError:
490
+ os_log_error (OS_LOG_DEFAULT, " %s " , [message UTF8String ]);
491
+ break ;
492
+ case RCTLogLevelFatal:
493
+ os_log_fault (OS_LOG_DEFAULT, " %s " , [message UTF8String ]);
494
+ break ;
495
+ }
496
+ }
497
+ };
498
+
436
499
@end
0 commit comments