菜鸟教程小白 发表于 2022-12-13 14:34:20

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(@&#34;This comment is live on TestFlight.&#34;);
</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]
查看完整版本: objective-c - NSLog 在设备上被忽略