+ (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;
}
Der obige Code ruft das Apple Systemprotokoll ab. Problem ist, es dauert etwa 8 Sekunden, um alle Protokolle aus Apple System Log (ASL) zu ziehen. Gibt es eine Möglichkeit, asl_set_query zu optimieren, um Daten schneller oder auf andere Weise zu erhalten, die mir fehlen?Optimieren Sie die Systemprotokolle des Applets
Hinweis: Können wir eine ASL-Abfrage erstellen, die Zeitstempel benötigt und wir weniger Datenmenge verarbeiten können. Das wird das Problem lösen, denke ich.
Ich habe diesen Beitrag bereits gesehen und versucht, aber half nicht viel in meinem Fall. Aber danke für deine Antwort. – AAV
Bitte überprüfen Sie meine Notiz – AAV
@AmitVyawahare Ich habe Zeitstempel Abfrage der Antwort hinzugefügt, lassen Sie mich wissen, ob es für Sie funktioniert. – tttthomasssss