首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在运行iPhone模拟器时,是否可以将Xcode控制台的日志输出重定向到终端?

在运行iPhone模拟器时,是否可以将Xcode控制台的日志输出重定向到终端?
EN

Stack Overflow用户
提问于 2009-12-16 04:30:07
回答 4查看 12.7K关注 0票数 20

我不喜欢在模拟器中(或在设备上)调试iPhone应用程序时使用Xcode的控制台输出窗口。我希望能够使用Unix工具箱,并使用grep过滤日志记录输出。但要做到这一点,我需要让Xcode将正在运行的iPhone应用程序的日志记录输出发送到终端。

有什么方法可以做到这一点吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-12-16 04:50:36

不能说它在模拟器中是如何工作的,但重定向stdout并不是非常困难。假设您想将其导入到您自己的视图中:

代码语言:javascript
复制
#include <unistd.h>

stderr->_write = RedirectOutputToView;
stdout->_write = RedirectOutputToView;

并使用原型:

代码语言:javascript
复制
int RedirectOutputToView(void *inFD, const char *buffer, int size);
票数 5
EN

Stack Overflow用户

发布于 2013-09-27 04:37:59

我发现this answer对我的目的来说工作得很好,尽管它需要运行模拟器才能在终端中直播:

我删除了模拟器检查,并在重定向之前添加了一条NSLog语句,以便XCode控制台显示文件的位置:

代码语言:javascript
复制
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *logPath = [documentsDirectory stringByAppendingPathComponent:@"console.log"];
NSLog(@"redirecting STDERR: %@", logPath);
freopen([logPath cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);

我认为最健壮的解决方案是使用一个日志库(例如CocoaLumberjack ),并将其配置为您喜欢的任何目的地。

票数 2
EN

Stack Overflow用户

发布于 2017-12-13 23:02:20

为什么不使用Console.app?一种很好的查看和grep日志的方式,而不是xCode的调试窗口或终端。默认情况下,这是macOS的一部分。

如果你有C的printf语句,那么下面的代码包含了很多有用的信息:Get printf on Console.app

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1910177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档