logcat

読み:ログキャット
外語:logcat 英語
品詞:商品名

Androidで、ユーザー空間で生じたシステムのログをリアルタイムで見ることができるツール。カーネルログはdmesgを使う。

目次

Apacheライセンス2.0で公開されている。Androidでは、ソースツリー中の /system/core/logcat ディレクトリ内にソースが一式存在する。

AndroidのJNI層、フレームワーク層、HAL層などのC/C++の処理で、適切に設定された状態でALOGV/ALOGD/ALOGI/ALOGW/ALOGEなどのログレベルで分類されたマクロを使用するとログに書き込める。

その内容は、logcatコマンドで表示することができる。

古いAndroidではLOGV/LOGD/LOGI/LOGW/LOGEだったが、後のAndroid(おそらくJelly Bean以降)は頭にAがつくマクロに変更された。各々、verbose、debug、info、warning、errorを意味するログを出力する。また、Android 4.1以降からはセキュリティ上の理由によりlogcatで表示できるログの制限が厳しくなり、logcatを起動したプロセスのログしか表示できないことがある。

使用方法

まず、logcatで表示するためのログの書き込み方は次の通り。

#define LOG_NDEBUG 0 // 0にするとLOGV()も含めて全て表示できる

#define LOG_TAG "hoge" // logcatに出力するタグ(必須)

#include <utils/Log.h> // 上二つを設定した後でincludeする(必須)

その後で、必要なログレベルのマクロをprintfのように使う。

LOGV("hello, world %d", 123);

表示

標準では、次の形式で表示される。x欄は、V/D/I/W/Eのどれか1文字である。

x/ProcessName(PID): message

もしタイムスタンプ情報が必要なら、-v time オプションで追加できる。

$ adb logcat -v time

mm-dd hh:mm:ss.SSS x/ProcessName(PID): message

この他にも、-v long など様々なオプションが存在する。

関連する用語
dmesg

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club