objective-c - NSLog 在设备上被忽略
<p><p>我正在尝试重定向所有 NSLog 输出,以便能够在应用程序内的 UITextView 中查看我的所有日志(出于调试目的,可能稍后使用 TestFlight 记录所有内容)。我不能使用众所周知的 DLog,因为我想从我不拥有的框架中捕获日志。</p>
<p>我通过将标准错误“重定向”到管道并从该管道读取来做到这一点。
无论如何,当从 Xcode 中启动应用程序时,这在模拟器和设备上运行良好。
但是,当应用程序在设备上“手动”启动时,这不起作用。</p>
<p>似乎 NSLog 调用对设备没有影响:我没有从管道中读取任何内容。但是,如果我在 stderr 上手动写入: <code>fprintf(stderr, "test")</code> 我可以从管道中读取它,所以问题不在于 stderr 而在于 NSLog 函数。</p>
<p>为什么它在设备上什么也不做?有没有办法让它即使在设备上也能写在 stderr 上?</p>
<p>如果无法在设备上使用 NSLog,是否有其他方法可以从外部框架收集日志?</p>
<p>谢谢。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>NSLog 转到设备上的系统日志。您可以使用 C API <a href="https://developer.apple.com/library/ios/#documentation/System/Conceptual/ManPages_iPhoneOS/man3/asl.3.html" rel="noreferrer noopener nofollow">asl (Apple System Log)</a> 访问系统日志;另请查看 <a href="http://www.cocoanetics.com/2011/03/accessing-the-ios-system-log/" rel="noreferrer noopener nofollow">this blog post</a> .</p>
<p>但是,如果您使用的是 TestFlight,只需使用 TFLog 语句替换/附加那些 NSLog 语句就容易多了。 </p>
<pre><code>TFLog(@"This comment is live on TestFlight.");
</code></pre></p>
<p style="font-size: 20px;">关于objective-c - NSLog 在设备上被忽略,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/11347718/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/11347718/
</a>
</p>
页:
[1]