gpt4 book ai didi

ios10 - 我想从 iOS 10 读取控制台日志

转载 作者:行者123 更新时间:2023-12-04 08:51:19 27 4
gpt4 key购买 nike

我正在使用此代码,但由于更改了与日志系统相关的所有 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_get(msg, 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_get(msg, ASL_KEY_MSG)]];
}

aslresponse_free(r);
asl_free(query);

return consoleLog; }

任何人都可以帮忙吗?

最佳答案

从 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 读取控制台日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39362846/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com