iOS应用程序记录Xcode控制台以外的其他位置

时间:2018-04-04 14:45:25

标签: ios swift logging nslog file-management

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

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

有没有人知道我可以轻松使用这样的外部日志?

1 个答案:

答案 0 :(得分:0)

以下是在Simulator中运行时如何更容易找到并拖尾日志文件(我自己使用):

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的控制台中。因此,我将日志系统更改为输出终端在执行文件尾部时支持的颜色。因此,我可以发现红色错误,橙色警告,黄色用户步骤记录以及渐进灰度阴影中不同程度的重要其他信息。 :)