2013-01-07 61 views
8

我正在调查我是否可以从asl_log获得比在iPhone/iOS上的NSLog更好的性能(可能...),但是我被困在一个点,它似乎并没有在系统中显示asl的日志输出控制台(可以通过许多应用程序(如系统控制台,iConsole等)查看。我知道自从我使用ASL_OPT_STDERR打开后,我正在设置它,并且在设备绑定时看到XCode中的日志条目。如何让asl_log出现在iOS系统控制台输出中?

我已经探讨很多有趣的东西在线(例如http://boredzo.org/blog/archives/2008-01-20/asl-logginghttps://github.com/robbiehanson/CocoaLumberjack)和最好的希望似乎asl_open()以“com.apple.console”设施,但很可惜,输出仍然不露面在控制台中。 NSLog是唯一的选择吗?

回答

5

您需要使用ReadUID或ReadGID设置消息的读取权限。设置为-1将允许任何用户/组根据头文件文档查看消息。

aslmsg msg = asl_new(ASL_TYPE_MSG); 
asl_set(msg, ASL_KEY_READ_UID, "-1"); 
asl_log(NULL, msg, ASL_LEVEL_NOTICE, "Hello, world!"); 
asl_free(msg); 
9

添加到STDERR ASL,然后在控制台中显示出来

asl_add_log_file(NULL, STDERR_FILENO);