iOS - 如何在手机上的 ssh 会话中查看 NSLog 和 printf 输出?
Posted
技术标签:
【中文标题】iOS - 如何在手机上的 ssh 会话中查看 NSLog 和 printf 输出?【英文标题】:iOS - How to view NSLog and printf output in ssh session on phone? 【发布时间】:2012-07-21 22:47:15 【问题描述】:我有一个简单的 iPhone 应用程序,它使用一个 NSLog
和几个 printf
语句。该应用程序是我创建的一个简单的测试应用程序,用于测试 iPhone (3GS) 上的串行通信。显然,我无法使用 ios 模拟器测试串行 com,因此在 Xcode 中单击 Run
后,我将设备从计算机上拔下。我从 Cydia 安装了 syslogd,tail /var/log/syslog
允许我监控某些日志消息。
但是,当我打开我的应用程序并到达代码的 NSLog
部分时,我没有看到消息出现在 /var/log/syslog
中,我也没有看到 printf
文件中的 printf
语句输出为应用程序。
iPhone 本身是否存在包含这些语句的输出的文件,还是我需要指定我的应用程序输出到/var/log/syslog
?
如果手机上存在包含日志消息内容的另一个文件,我很乐意打开另一个文件。基本上,我希望能够在sshed
进入电话时看到日志消息的内容,这样我就可以看到发生了什么。显然在 Xcode 中使用控制台输出不是一个选项,因为手机没有连接到计算机。
【问题讨论】:
【参考方案1】:你在使用tail /var/log/syslog
吗?它只显示日志的最后 15 行。也许尝试使用tail -f /var/log/syslog
。我刚刚对此进行了测试,它记录了我的简单NSLog(@"LOL");
就好了。我可以通过 ssh 和所有东西看到它。
【讨论】:
在ios9.0.2中找不到/var/log/syslog【参考方案2】:你写信给syslog 你应该调用系统日志函数。
NSLog输出可见this SO question.
printf 只会输出到标准输出。
我会尽量不使用 NSLog 和 stdout 来登录同一个应用程序 - 使用 NSLog 来记录那里的所有日志。或者通过更多的工作使用像 CocoaLumberjack 这样的日志框架,它允许更大的灵活性,包括可能包含 syslog 的其他日志器,因此具有一个日志功能,您可以在运行时重定向到不同的输出。
【讨论】:
如何查看我的 printf 语句的标准输出?我移动了我的 NSLog 语句,并且能够在 syslog 中看到它,但无法看到 printf 语句。 我不知道哪个是使用 NSLog 或其他记录器来允许您重定向的原因之一。以上是关于iOS - 如何在手机上的 ssh 会话中查看 NSLog 和 printf 输出?的主要内容,如果未能解决你的问题,请参考以下文章