[Hilog] 宏蒙システムログのソースコード解析
- Hilog は C/S 構造を採用しており、Hilogd がサーバーとしてロギング機能を提供します。クライアントは API 呼び出しを通じて HiLogd を処理します (最終的にはソケットを通じて通信します)。簡単なブロック図は以下の通りです。
- ここからが主な分析です。 Hilog の読み取り、書き込み、圧縮、ディスク作成、およびこれらのプロセスにおける Hilog と Android ログの違い。
HiLogログ書き込み処理
HiLog 書き込みプロセスと Android Log の主な違いは次のとおりです。
- バッファがいっぱいになった場合のクリーンアップのプロセス、higlog には Android の白黒リストがありません、およびログ内で最も多くの入力が含まれる uid をクリーンアップするプロセス。 Hilog は、同じドメイン内の古いログの 5% をクリーンアップします。
- ドメイン フロー制御のサポート: 単一ドメインの固定時間間隔内では、固定トラフィックのみの書き込みが許可されます。トラフィックを超過した後、メッセージをドロップします。
HiLogログ読み込み処理
- HiLogを読む場合は基本的に違いはありません。
HiLog ログの圧縮とディスクへのダウンロード
- HiLog ログの配置と Android の違い:
- 圧縮とダウンロードをサポートします。まずバッファを圧縮し、次に圧縮されたバッファをファイルにダウンロードします。
- HiLogD 直接ディスク配置: Android ログはクライアント側にログを読み取る必要があり、クライアント側がディスク配置を実行します。 HiLog はサーバー上で直接配置を実行します。