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 输出?的主要内容,如果未能解决你的问题,请参考以下文章

需要在手机上进行查看的CAD图纸应该如何打开?

本地H5页面(vue项目)如何在手机上查看

iOS APP打包成功之后,安装在手机上闪退

如何在手机上查看html、css、js、PHP文件代码?

如何在手机上调试h5

开发h5页面时怎么在手机上查看