2016-09-07 7 views
8

Użyłem tego kodu, ale nie działa on już na iOS 10 z powodu zmiany wszystkich API związanych z Logging System.Chciałbym przeczytać konsolę Zaloguj się z 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; } 

Czy ktoś może pomóc?

Odpowiedz

1

Początek w iOS 10 NSLog przekierowuje do nowego systemu rejestrowania i nie ma interfejsu API wyszukiwania.

From the WWDC 2016 Session 721 - Unified Logging and Activity Tracing
”... wszystkich interfejsów API starszych, NSLog, dziennik npm, wiadomości syslog, wszystkie te będzie przekierowany do nowego systemu. ... ale out-of-the-box, jeśli tylko budować z nowym systemem, wszystko zostanie skierowane do nowej architektury logowania. "

Time 41:47 „Po pierwsze, wszystkie API rejestrowania ASL są obecnie zastępowane przez te nowe API, a więc te stare API są nieaktualne. Interesujący jest przypadek krawędź chociaż. A nowe API do przeszukiwania danych dziennika nie jest Oznacza to, że nie ma odpowiednika funkcji wyszukiwania asl.Jeśli całkowicie polegasz na wyszukiwaniu asl w systemie, co może być powodem do oczekiwania na przyjęcie nowego systemu rejestrowania. z działań, które są przestarzałe. "