iOS 应用程序在 Xcode 控制台以外的地方记录

iOS app logging somewhere other than Xcode console

有一个我已经开始使用的应用程序,它会定期向控制台记录很多东西,使用控制台获取额外的调试日志确实不方便。我不想删除这些日志,因为有一些人在维护这些日志,而且这些日志对他们来说可能很重要。

所以我实际上需要将我的调试内容写到不同的地方。一种选择是将它写入一个文件并使用 tail 命令在终端中观看它,但是 iOS 应用程序只能写入其文件夹,当使用模拟器时,每次我 运行应用程序。而且我不想每次都更改 tail 命令的路径 - 我想要一个快速的过程。

有人知道我可以轻松使用的外部日志位置吗?

以下是如何在模拟器中 运行 时更轻松地查找和跟踪日志文件(我自己使用):

1) 将以下代码添加到您的主目录的 .bashrc 中,然后注销并重新登录。

xcodelog()
{
    find . -name xcode.log -type f -print0 | xargs -0 stat -f "%m %N" | sort -rn | head -1 | cut -f2- -d" "
}

2) 在 Xcode 的模拟器中启动您的应用程序,这样至少可以将某些内容记录到您的文件中。哦,你的应用程序记录到的文件需要命名为 "xcode.log" 除非你想在上面的代码中更改文件名。

3) 打开终端并切换到您的 ~/Library/Developer/CoreSimulator 目录。然后执行以下命令(它显示它的最后 100 行以及您转储到它的任何新内容)。

tail -n 100 -f $(xcodelog)

因此,上述命令会在您所有的模拟器设备及其应用程序中寻找该文件,寻找您写入的 最近的 "xcode.log" 文件(在整个 CoreSimulator 子目录系统中的所有应用程序和设备)。

要清除最近的 xcode.log 文件,您可以执行此命令:

cat /dev/null > $(xcodelog)

当 Xcode 8 失去了对插件的支持以及非常好的 XcodeColors 插件时,我将所有日志记录切换为这种方法,该插件可以将 ANSI 颜色记录到 Xcode的控制台。所以我更改了我的日志系统以输出终端在执行文件尾部时支持的颜色。因此,我可以发现红色的错误、橙色的警告、黄色的用户步骤登录以及渐进的灰色阴影中不同程度的重要其他信息。 :)