私はこのメソッドを持っています:
q = asl_new(ASL_TYPE_QUERY);
asl_set_query(q, ASL_KEY_SENDER, "MyApp", ASL_QUERY_OP_EQUAL);
// Count the number of results
r = asl_search(NULL, q);
while (NULL != (m = aslresponse_next(r))) {
counter++;
}
r = asl_search(NULL, q);
while (line++ < counter && NULL != (m = aslresponse_next(r)))
{
// Take only the latest results
if (!(line < counter-NUMBER_OF_LOG_MESSAGES)) {
log = [NSMutableDictionary dictionary];
for (i = 0; (NULL != (key = asl_key(m, i))); i++)
{
keyString = [NSString stringWithUTF8String:(char *)key];
if ([self.logKeyFilter containsObject:keyString]) {
val = asl_get(m, key);
string = [NSString stringWithUTF8String:val];
[log setObject:string forKey:keyString];
}
}
date = [dateFormat stringFromDate:[NSDate dateWithTimeIntervalSince1970:[[log objectForKey:@"Time"] doubleValue]]];
[logs addObject:[NSString stringWithFormat:@"%@ %@ %@", date, [self.logLevelKeyFilter objectForKey:[log objectForKey:@"Level"]], [log objectForKey:@"Message"]]];
}
}
aslresponse_free(r);
return logs;
「MyApp」の最新のログを返します。NUMBER_OF_LOG_MESSAGES は、最新のログのみを取得するためにここにあります。
問題は、PID X の MyApp でクラッシュが発生し、ログをキャッチするために MyApp を再起動したときに、新しい PID Y のログしかないことです。
では、すべてのログ ファイルを検索して MyApp のログを見つける方法を教えてください。
ありがとうございました。