(iOS)如何在iOS设备上直接查看日志信息?

3
尽管调试器变得越来越好用,但有时候查找应用程序中发生的情况最好的方法仍然是使用经典的NSLog。当您连接到计算机时,这很容易实现;Xcode会弹出Log Viewer面板,然后您就可以查看了。但是,当您远离桌子时(例如测试CoreLocation功能时),这样做就不那么容易了。当然,您可以打开Xcode并在测试运行结束后立即检查设备组织器的控制台部分,但这样您就必须等待,并且在您能够返回查看日志之前,您可能已经忘记了应用程序出了什么问题;而且很可能在您能够这样做之前,您正在寻找的日志消息已经消失了。
有没有办法在设备本身上检查控制台日志?我猜答案是“不行,除非您越狱”(如果我没记错,在越狱领域至少有一两个终端应用程序可以用来做这种事情)。不幸的是,对我来说越狱不是一个选择。

另外,是否有一种Objective-C框架、库或其他工具可以处理日志收集和设备上的显示?理想情况下,这将以NSLog的替代品形式出现,我只需进行搜索和替换,并将所有NSLog的出现更改为SomeFancyPantsLoggingTool或其他内容即可。

一个很好的例子是播客客户端Downcast。如果你点击“更多”选项卡,然后点击屏幕底部的版本号字符串,会出现一个新视图,其中包含累积日志消息的可滚动视图。它甚至有一种简单的方法将这些日志发送到支持电子邮件地址。


不要替换古老的 NSLog()。你应该连接到 syslog。man syslogman syslogd 是你的朋友,还可以尝试连接到 lockdownd 并从中获取系统日志(尽管这是一个私有API,所以在提交到AppStore之前请将其 #ifdef 掉)。 - user529758
通常我使用自己的日志记录器。我有一组定义,可以与NSLog和我的参数一起使用。由于我希望将自己的日志记录在单独的文件中(每天一个文件),所以我只需通过调用“freopen”并使用“stderr”来将所有日志重定向到新创建的文件 freopen([pathToFile UTF8String], "a", stderr)。然后当用户遇到问题并点击我的“联系支持”按钮时,我可以将这些日志发送给自己。 - krzyspmac
2个回答

0

请看一下LibComponentLogging,您可以配置它以在不同级别和不同目的地输出日志。


0

有一个 SysLog 文件。您可以简单地打开它并从中读取。该文件位于 /var/log/syslog。如果文件不存在,则有关如何设置它的说明在此处


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接