gpt4 book ai didi

objective-c - NSLog 在设备上被忽略

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:14:57 26 4
gpt4 key购买 nike

我正在尝试重定向所有 NSLog 输出,以便能够在应用程序内的 UITextView 中查看我的所有日​​志(出于调试目的,可能稍后使用 TestFlight 记录所有内容)。我不能使用众所周知的 DLog,因为我想从我不拥有的框架中捕获日志。

我通过将 stderr“重定向”到一个管道并从该管道中读取来做到这一点。无论如何,当应用程序从 Xcode 中启动时,这在模拟器和设备上运行良好。但是,当应用程序在设备上“手动”启动时,这不起作用。

似乎 NSLog 调用对设备没有影响:我没有从管道中读取任何内容。但是,如果我在 stderr 上手动写入:fprintf(stderr, "test") 我可以从管道中读取它,因此问题不在于 stderr,而在于 NSLog 函数。

为什么它在设备上什么都不做?有没有办法让它甚至在设备上写在 stderr 上?

如果无法在设备上使用 NSLog,是否有其他方法从外部框架收集日志?

谢谢。

最佳答案

NSLog 转到设备上的系统日志。您可以使用 C API 访问系统日志 asl (Apple System Log) ;还可以查看 this blog post .

但是,如果您使用的是 TestFlight,则只需使用 TFLog 语句替换/附加这些 NSLog 语句会容易得多。

TFLog(@"This comment is live on TestFlight.");

关于objective-c - NSLog 在设备上被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11347718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com