+ (NSArray *)systemLogDictionariesForAppName:(NSString *)appName {
aslmsg q = asl_new(ASL_TYPE_QUERY);
asl_set_query(q, ASL_KEY_SENDER, [appName cStringUsingEncoding:NSASCIIStringEncoding], ASL_QUERY_OP_EQUAL);
aslresponse r = asl_search(NULL, q);
aslmsg m;
uint32_t i;
const char *key, *val;
NSMutableArray *systemLogDictionaries = [NSMutableArray array];
while (NULL != (m = aslresponse_next(r)))
{
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
for (i = 0; (NULL != (key = asl_key(m, i))); i++)
{
val = asl_get(m, key);
NSString *stringKey = [NSString stringWithCString:key encoding:NSUTF8StringEncoding];
NSString *stringVal = [NSString stringWithCString:val encoding:NSUTF8StringEncoding];
[dictionary setObject:stringVal forKey:stringKey];
}
[systemLogDictionaries addObject:dictionary];
}
aslresponse_free(r);
return systemLogDictionaries;
}
Powyższy kod otrzyma log systemu Apple. Problem polega na tym, że pobranie wszystkich dzienników z systemu Apple System Log (ASL) zajmuje około 8 sekund. Czy istnieje sposób optymalizacji asl_set_query, aby uzyskać dane szybciej lub w inny sposób, którego mi brakuje.Optymalizacja logów systemu jabłek
Uwaga: Czy możemy utworzyć zapytanie ASL, które będzie wymagało znacznika czasu, a my uzyskamy mniej danych do przetworzenia. To rozwiąże problem, który myślę.
Widziałem już ten post i próbowałem, ale nie pomogłem w moim przypadku. Ale dziękuję ci za odpowiedź. – AAV
Proszę sprawdzić moją notatkę – AAV
@AmitVyawahare Dodałem sygnaturę czasową do odpowiedzi, daj mi znać, czy to działa dla Ciebie. – tttthomasssss