HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios10 – 我想从iOS 10读取控制台日志大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用此代码但由于更改了与Logging System相关的所有API,因此它不再适用于iOS 10.
+ (NSString *)getConsoleLog {
NSString *consoleLog = @"";
char fdate[24];

NSString *myPID = [NSString StringWithFormat:@"%d",getpid()];
aslmsg query,msg;
query = asl_new(ASL_TYPE_QUERY);
asl_set_query(query,ASL_KEY_PID,myPID.UTF8String,ASL_QUERY_OP_EQUAL);
aslresponse r = asl_search(NULL,query);

while ((msg = aslresponse_next(r))) {
    NSString *secondsString = [NSString StringWithFormat:@"%s",asl_get(msg,ASL_KEY_TIME)];
    NSString *nanoSecondsString = [NSString StringWithFormat:@"%s",ASL_KEY_TIME_NSEC)];

    NSTimeInterval seconds = [secondsString doubleValue];
    NSTimeInterval nanoSeconds = [nanoSecondsString doubleValue];
    NSTimeInterval msgTime = seconds + nanoSeconds / NSEC_PER_SEc;

    time_t timestamp = (time_t)msgTime;
    struct tm *lt = localtime(&timestamp);
    strftime(fdate,24,"%Y-%m-%d %T",lt);

    consoleLog = [consoleLog StringByAppendingFormat:@"%s.%03d %@\n",fdate,(int)(1000.0 * (msgTime - floor(msgTimE))),[NSString StringWithFormat:@"%s",ASL_KEY_MSG)]];
}

aslresponse_free(r);
asl_free(query);

return consoleLog; }@H_262_3@ 
 

有人可以帮忙吗?

解决方法

从iOS 10开始,NSLog重定向到新的日志记录系统,没有搜索API.

From the WWDC 2016 Session 721 – Unified Logging and Activity Tracing
“…所有的遗留API,NSLog,asl日志,消息系统日志,所有这些都将被重定向到新系统……但是如果你只是用新系统构建它就是开箱即用的”所有人都会被引导进入新的日志记录架构.“

Time 41:47“首先,所有ASL日志记录API现在都被这些新API取代,因此,不推荐使用那些旧的API.但是有一个有趣的边缘情况.用于搜索日志数据的新API不会被制作这个版本中的公共.这意味着没有与asl搜索功能相当的.如果你绝对依赖于系统中的asl搜索,这可能是等待采用新的日志系统的一个原因.还有一些来自活动的API被弃用.“

大佬总结

以上是大佬教程为你收集整理的ios10 – 我想从iOS 10读取控制台日志全部内容,希望文章能够帮你解决ios10 – 我想从iOS 10读取控制台日志所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。