从API版本26.0.1开始提供了external_log日志管理者注册接口,确保故障日志沙箱目录容量达到阈值时通知应用清理删除external_log文件。
external_log是应用沙箱内的故障日志文件路径,当应用通过HiAppEvent订阅系统事件后,若对应系统事件被触发,系统参数对象params中将包含external_log字段,开发者可依据该路径读取故障日志文件内容。
同一系统事件支持多个订阅者,每个订阅者获取的external_log路径均不同,以确保各订阅者间的操作相互不影响,最多支持前100个订阅者获取独立的日志路径,超出此数量的订阅者将复用相同的日志路径。
目前提供ArkTS和C/C++两种接口注册external_log日志管理者,按需选择。
应用通过订阅系统事件来获取对应系统事件发生时的external_log故障日志文件内容,其实现原理如下图所示:

详细步骤如下:
external_log目录包含/data/storage/el2/log/hiappevent、/data/storage/el2/log/watchdog、/data/storage/el2/log/resourcelimit。
日志规格可参考系统事件故障日志目录规格。
沙箱故障日志目录阈值:
/data/storage/el2/log/hiappevent/ 目录达到4MB时通知应用清理删除external_log文件。
/data/storage/el2/log/resourcelimit/ 目录达到1500MB时通知应用清理删除external_log文件。