ios - 如何以编程方式从 iPhone 获取 iPhone 应用程序崩溃日志文件

标签 ios iphone ios7 crash-log

有没有办法通过编程方式访问 iPhone 崩溃日志文件。我试图编写一个崩溃报告功能,当您在崩溃后启动应用程序时,它会向服务器发送崩溃报告。我找不到如何获取应用程序内的崩溃日志。

最佳答案

您可以使用以下逻辑来实现相同的目的。

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"]];
}

strLoggerLevelNSString,它保存您想要的记录器类型,范围最大为 7。

关于ios - 如何以编程方式从 iPhone 获取 iPhone 应用程序崩溃日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22654089/

相关文章:

ios - 带有 UITableView 的 UIPageViewController 有奇怪的大小

ios - 无法滚动 MKMapView。

ios - Facebook 应用详情页面目前不符合提交条件

iphone - 在 iPhone 中将两张图像合并为一张图像

iphone - [__NSCFNumber 长度] : unrecognized selector sent to instance 0x6d21350

ios - 在 iOS7 中取消交互式弹出手势时如何将数据传递给子 Controller ?

ios - Corona SDK - iOS 游戏中心得分错误,小数逗号

ios - Swift 将 JSON 解析为模型对象

iphone - iOS 11 iPhone X 模拟器选项卡栏图标和标题呈现在顶部,相互覆盖

ios7 - "Could not instantiate class named UIStoryboardShowSegueTemplate"- 如何让 Storyboard对 iOS 7 和 iOS 8 满意?