如何在应用程序中在运行时获取控制台读数?

Hyp*_*ole 12 console objective-c ios

出于调试目的,我想在运行时以类似于App Store上的Console app(可在此处找到)的方式访问控制台打印输出.

我做了一些搜索文档,我找不到Apple提供的任何东西,但我觉得我错过了一些重要的东西.任何见解?

谢谢.

Joe*_*Joe 18

你可以这样做<asl.h>.这是一个我拼凑在一起创建一组控制台消息的例子.

-(NSArray*)console
{
    NSMutableArray *consoleLog = [NSMutableArray array];

    aslclient client = asl_open(NULL, NULL, ASL_OPT_STDERR);

    aslmsg query = asl_new(ASL_TYPE_QUERY);
    asl_set_query(query, ASL_KEY_MSG, NULL, ASL_QUERY_OP_NOT_EQUAL);
    aslresponse response = asl_search(client, query);

    asl_free(query);

    aslmsg message;
    while((message = asl_next(response)) != NULL)
    {
        const char *msg = asl_get(message, ASL_KEY_MSG);
        [consoleLog addObject:[NSString stringWithCString:msg encoding:NSUTF8StringEncoding]];
    }
    if (message != NULL) {
        asl_free(message);
    }
    asl_free(response);
    asl_close(client);

    return consoleLog;
}
Run Code Online (Sandbox Code Playgroud)

  • 为IOS开发人员发现了一个有趣的注释.设备上的ASL实现将限制您仅搜索最后256条消息.注意那一个. (3认同)