1

私はこのメソッドを持っています:

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 のログを見つける方法を教えてください。

ありがとうございました。

4

0 に答える 0