ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
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 など様々なオプションが存在する。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます