2016-09-07 10 views
8

iOS 10 Gönderen konsol Günlüğü okumak istiyorum.ben bu kodu kullanıyordum ancak artık iOS 10 çünkü Kayıt Sistemi ile ilgili tüm API'leri değişen çalışmaktadır

+ (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; } 

Herkes yardımcı olabilir mi?

cevap

1

iOS'tan başlayarak NSLog yeni günlüğe kaydetme sistemine yönlendirir ve arama API'sı yoktur.

From the WWDC 2016 Session 721 - Unified Logging and Activity Tracing
" ... eski API'leri hepsi NSLog, asl günlüğü, mesaj syslog, bunların hepsi. Yeni sisteme yönlendirilir ... ama alacak dışı-box eğer sadece Yeni sistemle inşa edersiniz, hepsi yeni kayıt mimarisine yönlendirilir. "

Time 41:47 "Öncelikle, ASL günlüğü API'leri tüm şimdi bu nedenle o eski API'leri kullanımdan kaldırılmıştır, bu yeni API'ler yerini ve edilmektedir. Ilginç bir kenarı durumda olsa vardır. Yeni bir API günlük verileri aramak için değil Bu sürümlerde herkese olacak. Bunun anlamı. kesinlikle yeni kayıt sistemini benimseyen beklemek için bir neden olabilir sisteminizdeki asl aramada dayanıyorsa. hiçbir asl arama işlevselliği denk olduğu yönünde bazı API'ler de var kullanımdan kaldırılan etkinliklerden. "

İlgili konular