有时console.log在log-ios中显示有时它不会

时间:2017-04-07 23:05:13

标签: react-native react-native-ios

我在一个终端中运行int multiply(int s, int b) throws RemoteException { return s * b; } ,然后在另一个终端中运行react-native start。我的初始react-native ios-run很少显示,有时他们会这样做。

很多次,随便我看到:

  

日志消息语录超出 - 此过程中的一些消息已被丢弃

我的console.log被丢弃了吗?我尝试清理控制台以便更清楚地看到它,但我找不到清除控制台的方法。

在Android上,我不会错过console.log

2 个答案:

答案 0 :(得分:4)

使用syslog守护程序

react-native日志信息。该守护进程试图阻止垃圾邮件发送到日志(DoS攻击)。这些限制是基于每个过程设置的。

简单的解决方案是停止/启动模拟器,您将获得不受先前行为限制的新流程。

另一个解决方案是禁用syslogd限制,这将取决于您的操作系统。

答案 1 :(得分:1)

我发现JavascriptCore引擎不会自动将console.log重定向到XCode output panel或系统内置Console.App,更不用说自我破坏了{{} 1}}命令。

在浏览器中看到没有远程调试的console.log的唯一方法是自己重定向(绑定):

log-ios

警告: //Add this headers #import <JavaScriptCore/JavaScriptCore.h> #import <jschelpers/JavaScriptCore. h> #import <React/RCTBridge+Private.h> ... ... - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSURL *jsCodeLocation; ... ... [self.window makeKeyAndVisible]; ::sleep(2); //<---!!!!!see below JSGlobalContextRef globalContext = rootView.bridge.jsContextRef; JSContext *context = [JSC_JSContext(globalContext) contextWithJSGlobalContextRef:globalContext]; context[@"console"][@"log"] = ^(NSString *message) { NSLog(@"Javascript log: %@",message); }; return YES; } 中的JSContext是在另一个帖子中创建的,我不知道如何获取已加载的事件(仅在我的项目中,因为我不知道我想修改react-native引擎,只是等一段时间用于测试目的。