ASL:asl_search() 无法获取 asl_log() 写入的日志

Posted

技术标签:

【中文标题】ASL:asl_search() 无法获取 asl_log() 写入的日志【英文标题】:ASL : asl_search() can't get logs write by asl_log() 【发布时间】:2015-04-16 09:18:07 【问题描述】:

我想使用 asl 来管理 ios 中的日志。但我遇到了一些问题。 在我的程序中,我使用 asl_log() 来编写这样的日志:

asl_log(NULL, NULL, (LEVEL), "%s", [message UTF8String]);

我想像这样使用 asl_search 阅读所有日志:

q = asl_new(ASL_TYPE_QUERY);
aslresponse r = asl_search(NULL, q);

这是我的问题。我可以得到由 NSLog() 写入的消息,但不能得到由 asl_log() 写入的消息。如何读取 asl_log() 写入的消息?或者如何正确做?

【问题讨论】:

【参考方案1】:

在设备上,如果没有将ASL_KEY_READ_UID 明确设置为“-1”,我无法让 iOS 应用读取其自己的 ASL 日志条目。

Mac 上的行为(因此在 iOS 模拟器中)是不同的;在那里,默认情况下,一个进程可以读取其他进程的日志条目。

如需了解更多信息,CleanroomASL 开源项目有a summary of differences between ASL behavior on iOS devices versus the Mac。

CleanroomASL 提供了一个用于读取和写入 Apple 系统日志的 Swift API。

【讨论】:

以上是关于ASL:asl_search() 无法获取 asl_log() 写入的日志的主要内容,如果未能解决你的问题,请参考以下文章

苹果记录器(ASL)忽略 /etc/asl.conf 中特定设施的规则

通过USB架设ASL code的WinDbg

hash函数查找和ASL计算

Hash表的平均查找长度ASL计算方法

在数据结构中ASL是啥?

20172310 蓝墨云ASL测试 2018-1938872