Android でのログ機能の使用
1. Android ログユーティリティクラス:Log
Android SDK には専用のログユーティリティクラス android.util.Log が用意されており、優先度の低い順に 5 段階のログメソッドを提供しています:
| メソッド | レベル | 説明 |
|---|---|---|
Log.v() | Verbose | 最も低いレベル。最も細かいログ情報の出力に使用 |
Log.d() | Debug | デバッグ情報。開発時に最もよく使用される |
Log.i() | Info | 一般的な情報メッセージ |
Log.w() | Warn | 警告情報。潜在的なリスクが存在する可能性がある |
Log.e() | Error | エラー情報。catch ブロックで捕捉された例外など |
2. 基本的な使い方
MainActivity の onCreate() メソッドにログを追加します:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Info レベルのログを出力
Log.i("foxdevelop", "xxxxxx");
}Code language: JavaScript (javascript)
メソッドのパラメータ説明:
| パラメータ | 説明 |
|---|---|
| 第1引数(tag) | ログタグ。通常はソースを識別する短い文字列で、フィルタリングに便利 |
| 第2引数(msg) | ログの内容。出力したいメッセージ |
プロジェクトを実行後、Logcat ウィンドウを開くと出力されたログが表示されます。

3. Logcat ウィンドウの使い方のヒント
| 機能 | 操作 |
|---|---|
| ログを表示 | アプリ実行後、下部の Logcat パネルに自動表示される |
| キーワード検索 | Logcat 検索ボックスにキーワード(例:foxdevelop)を入力してフィルタリング |
| レベルでフィルタ | ドロップダウンメニューで Show only selected application / No Filters / Edit Filter Configuration を選択 |
| タグでフィルタ | 検索ボックスに tag:foxdevelop を入力 |
4. System.out.println() が推奨されない理由
| 比較項目 | System.out.println | Log |
|---|---|---|
| 制御性 | 制御不可 | レベルやフィルタで制御可能 |
| 時間情報 | タイムスタンプなし | 各ログに正確な時間が付与される |
| フィルタリング | タグでフィルタ不可 | タグ、レベル、プロセスなど多次元フィルタをサポート |
| ログレベル | レベル区分なし | 5 段階のレベルで問題切り分けが容易 |
| 本番環境 | 無効化不可 | 無効化や特定レベルのみ出力に設定可能 |
// 非推奨
System.out.println("xxxxxxx");
// 推奨
Log.i(TAG, "Foxdevelop");Code language: JavaScript (javascript)

5. Android Studio ログショートカット
AS には強力な Live Template ショートカットが用意されています。入力して Tab キーを押すと自動補完されます:
| ショートカット(入力後 Tab) | 生成されるコード | 説明 |
|---|---|---|
logd | Log.d(TAG, "onCreate: "); | Debug ログを生成 |
logi | Log.i(TAG, "onCreate: "); | Info ログを生成 |
logw | Log.w(TAG, "onCreate: "); | Warn ログを生成 |
loge | Log.e(TAG, "onCreate: "); | Error ログを生成 |
logv | Log.v(TAG, "onCreate: "); | Verbose ログを生成 |
logt | private static final String TAG = "クラス名"; | クラス内で使用すると、現在のクラス名が TAG として自動生成される |
6. 完全な例
public class MainActivity extends AppCompatActivity {
// クラス内で logt + Tab を使用して自動生成
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// TAG 定数を使用してログ出力
Log.i(TAG, "foxdevelop");
Log.e(TAG, "ここで例外が発生しました");
// 非推奨
System.out.println("xxxxxxx");
}
}Code language: PHP (php)
実行後の Logcat 出力結果:
I/MainActivity: foxdevelop
E/MainActivity: ここで例外が発生しましたCode language: HTTP (http)
ログ機能
Previous: build.gradle
Next: アクティビティActivity