aslロギングフレームワークを使用してさまざまなエラーレベルをログに記録し、メソッドを使用してそれらを表示しています。私が持っているエラーは非常に奇妙です。すべてのレベルのログを表示するために使用する方法はiOS5で機能しますが、iOS6では警告レベルのログのみが返されます。
-(NSArray*) retrieveLogsWithLevel:(LoggingLevels)level_in forQueryOperation:(QueryOperations)queryOperation
{
[self.accessLock lock];
// subscribe for low memory notifications
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(lowMemoryNotificationReceived:)
name:UIApplicationDidReceiveMemoryWarningNotification
object:nil];
// build the query
aslmsg aslQuery = asl_new(ASL_TYPE_QUERY);
const int setQueryStatus1 = asl_set_query(aslQuery, ASL_KEY_SENDER, [self usedByAppName], ASL_QUERY_OP_EQUAL);
if( (setQueryStatus1 != 0) /*|| (setQueryStatus2 != 0)*/ )
{
return [NSArray array];
}
// convert enum to string representation
char buff[2];
sprintf(buff, "%d", level_in);
asl_set_query(aslQuery, ASL_KEY_LEVEL, buff/*"4"*/,
queryOperation | ASL_QUERY_OP_NUMERIC);
// execute query
aslresponse response = asl_search(NULL, aslQuery);
asl_free( aslQuery );
NSArray* results = [self extractResults:response];
// free the response
aslresponse_free(response);
// unsubscribe from low memory notifications
[[NSNotificationCenter defaultCenter] removeObserver:self];
[self.accessLock unlock];
return results;
}
シミュレーターで同じコードを試しましたが、すべてのエントリが返されます。これが失敗するのは、iOS6で実行されているデバイス上のみです。