【Hilog】鸿蒙系统日志源码分析

【Hilog】鸿蒙系统日志源码分析

  • Hilog采用C/S结构,Hilogd作为服务端提供日志功能。Client端通过API调用(最终通过socket通讯)与HiLogd打交道。简易Block图如下。
    【Hilog】鸿蒙系统日志源码分析_第1张图片
  • 这里主要分析一下。Hilog的读、写、压缩落盘,以及higlog与android log在这几个流程上的差异点。

HiLog日志写入流程

HiLog写入流程与Android Log主要差异点:

  1. Buffer满时清理流程,higlog无android的黑白名单、 清理log输入最多的uid的流程。hilog清理同域旧的5%的log。
  2. 支持域流量控制:单域固定时间端间隔内,只允许写入固定的流量。超出流量后,Drop msg。
    【Hilog】鸿蒙系统日志源码分析_第2张图片

HiLog日志读取流程

  • HiLog读取时基本上没有什么差异。
    【Hilog】鸿蒙系统日志源码分析_第3张图片

HiLog日志压缩落盘

  • HiLog日志落盘与Android差异:
  1. 支持压缩落盘:先将buffer压缩,压缩后的buffer落盘到文件中。
  2. HiLogD直接落盘:android log需要将log日志读取到client端,Client端进行落盘。HiLog直接在服务端进行落盘。
    【Hilog】鸿蒙系统日志源码分析_第4张图片

你可能感兴趣的:(Android,harmonyos,华为,log系统,hilog,android)