【问题标题】:iOS - How to view NSLog and printf output in ssh session on phone?iOS - 如何在手机上的 ssh 会话中查看 NSLog 和 printf 输出?
【发布时间】: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 中使用控制台输出不是一个选项,因为手机没有连接到计算机。

【问题讨论】:

    标签: ios xcode printf nslog syslog


    【解决方案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 或其他记录器来允许您重定向的原因之一。
    猜你喜欢
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 2016-10-02
    相关资源
    最近更新 更多