我正在使用带有 DDASLLogger 的 CocoaLumberjack 来获取 ASL 的日志条目,并且我想要一个日志,其中包含来自 3:rd 方的 misc NSLog:ed 输出和我自己的日志以及同一日志中的日志。
为了获得更好的画面,我提取了对 ASL 的调用并做了一个例子。我遇到的问题是,这种 ASL 提取方法只能找到使用 NSLog 编写的条目,而不是使用asl_log编写的条目。
以下是管理器控制台中的示例:
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 然后以这种方式阅读?
谢谢, 克拉斯