how to get iPhone App Crash Log file from iPhone programmatically

前端 未结 1 1049
被撕碎了的回忆
被撕碎了的回忆 2020-12-17 07:25

Is there a way to access iphone crash log file via programmatically. I trying to write a crash report feature that when you launch the app after a crash, it will offer to s

相关标签:
1条回答
  • 2020-12-17 07:43

    You can use the following logic for the same.

    aslmsg q, m;
    int i;
    const char *key, *val;
    float how_old = fTime ;
    q = asl_new(ASL_TYPE_QUERY);
    asl_set_query(q, ASL_KEY_LEVEL, strLoggerLevel ,ASL_QUERY_OP_LESS_EQUAL);
    asl_set_query(q, ASL_KEY_FACILITY, [@"YourBundleIdOfAPP" UTF8String] ,ASL_QUERY_OP_EQUAL);
    
    asl_set_query(q, ASL_KEY_TIME, [[NSString stringWithFormat:@"%.f", [[NSDate date] timeIntervalSince1970] - how_old] UTF8String], ASL_QUERY_OP_GREATER_EQUAL);
    int goInside=0;
    aslresponse r = asl_search(NULL, q);
    while (NULL != (m = aslresponse_next(r)))
    {
        NSString *cValueToWrite;
        NSMutableDictionary *tmpDict = [NSMutableDictionary dictionary];
    
        for (i = 0; (NULL != (key = asl_key(m, i))); i++)
        {
            //get the only required fields
            if(i==12 || i==10 || i==11 || i==8 || i==9 ||i==3)
            {
                NSString *keyString = [NSString stringWithUTF8String:(char *)key];
                val = asl_get(m, key);
    
                NSString *string = [NSString stringWithUTF8String:val];
                [tmpDict setObject:string forKey:keyString];
            }
        }
    
        cValueToWrite=[[NSString alloc]initWithFormat:@"\n--------------[Debug]----------------\nDateTime: %@\nApplication: %@\nInfo: %@",[tmpDict valueForKey:@"CFLog Local Time"],[tmpDict valueForKey:@"Sender"],[tmpDict valueForKey:@"Message"]];
    }
    

    strLoggerLevel is the NSString which holds the logger type which you want which ranges upto 7.

    0 讨论(0)
提交回复
热议问题