2

DDASLLogger で CocoaLumberjack を使用して ASL へのログ エントリを取得しています。サード パーティからのその他の NSLog:ed 出力と自分のログの両方を含む単一のログを同じログに保持したいと考えています。

よりよく理解するために、ASL への呼び出しを抽出して例を作成しました。私が抱えている問題は、この ASL 抽出方法では、 asl_logではなく、NSLogで書き込まれたエントリのみが検出されることです。

オーガナイザー コンソールの例を次に示します。

Apr 17 20:34:48 Claes-Ls-iPhone-4s ASLLogTest[7253] <Warning>: NSLog 7
Apr 17 20:34:51 Claes-Ls-iPhone-4s ASLLogTest[7253] <Critical>: ASLLog 7

これを抽出すると、NSLog 行のみが取得されます。

使用されるコードは次のとおりです。

ASL への書き込み:

NSDictionary *infoDictionary = [NSBundle mainBundle].infoDictionary;
NSString *productName = [infoDictionary objectForKey:@"CFBundleDisplayName"];
_client = asl_open(productName.UTF8String, "com.apple.console", 0);
int status = asl_log(_client, NULL, ASL_LEVEL_CRIT, "%s", string.UTF8String);

ASL からの読み取り (完全な iterate-through-asl は提供しませんが、機能します):

// Using ASL_QUERY_OP_TRUE to be dead-sure.
q = asl_new(ASL_TYPE_QUERY);
asl_set_query(q, ASL_KEY_SENDER, productName.UTF8String, ASL_QUERY_OP_TRUE);
aslresponse r = asl_search(NULL, q);

ASLに書き込んでからこのように読むことは不可能ですか?

ありがとう、クラエス

4

1 に答える 1