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

时间:2012-07-21 22:47:15

标签: ios xcode printf nslog syslog

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

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

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

如果包含日志消息内容的手机上存在另一个文件,我很满意。基本上我希望能够在sshed进入手机时看到日志消息的内容,这样我才能看到发生了什么。显然,在Xcode中使用控制台输出不是一个选项,因为手机没有连接到电脑。

2 个答案:

答案 0 :(得分:1)

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

可以看到NSLog输出显示在this SO question

printf只会转到stdout。

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

答案 1 :(得分:1)

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