iOS – 如何在手机上的ssh会话中查看NSLog和printf输出?

我有一个简单的iPhone应用程序,它使用NSLog和几个printf语句。 该应用程序是一个简单的测试应用程序,我创建用于测试iPhone(3GS)上的串行通信。 显然我无法使用iOS模拟器测试串口com,因此在点击Xcode中的Run之后,我将设备从计算机上拔下。 我从Cydia安装了syslogd, tail /var/log/syslog允许我监视某些日志消息。

但是,当我打开我的应用程序并且它到达代码的NSLog部分时,我没有看到消息出现在/var/log/syslog我也没有在应用程序的syslog文件中看到printf语句输出。

iPhone本身是否存在包含这些语句输出的文件,或者我是否需要指定我的应用程序输出到/var/log/syslog

我满足于打开另一个文件,如果它包含在包含日志消息内容的手机上。 基本上我希望能够看到日志消息的内容,同时我被打入手机,所以我可以看到发生了什么。 显然,使用Xcode中的控制台输出不是一个选项,因为手机未连接到计算机。

你在使用tail /var/log/syslog吗? 它只显示日志的最后15行。 也许尝试使用tail -f /var/log/syslog 。 我刚测试了它,它记录了我的简单NSLog(@"LOL"); 正好。 我能够通过ssh和一切看到它。

您写入syslog应该调用syslog函数。

NSLog输出可以看作如此SO问题所示。

printf只会去stdout。

我会尝试不使用NSLog和stdout登录同一个应用程序 – 使用NSLog进行所有日志记录。 或者更多的工作是像CocoaLumberjack这样的日志框架,它允许更多的灵活性,包括其他可能包含syslog的记录器,因此有一个日志function可以在运行时重定向到不同的输出。