0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Android Studio入門】Logcatでログを使いこなす!効果的なデバッグ術まとめ

0
Posted at

Androidアプリ開発でバグを追うときに使用するのが Logcat。しかし、「ログのどこを見ればいいのか分からない」「出力が多すぎて追えない」感じることもあります。Logcatの使い方の基礎をメモします。

ログの出力方法

android.util.Log クラスを使用します。 Kotlin / Java どちらでも同様の使い方が可能です。

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        Log.v("MainActivity", "一番詳細")
        Log.d("MainActivity", "開発時によく使う")
        Log.i("MainActivity", "一般情報")
        Log.w("MainActivity", "警告")
        Log.e("MainActivity", "エラー")
    }
}
メソッド ログレベル 用途
Log.v() Verbose 最も詳細なログ(通常は非表示)
Log.d() Debug 開発中の動作確認
Log.i() Info 通常の情報出力
Log.w() Warn 警告(想定外の挙動)
Log.e() Error 重大なエラー発生時

Logcatウィンドウの使い方

Android Studioの側面にあるLogcaタブを開くとログが表示されます。表示量が多いため、フィルタ設定を行う必要があります。左上の「Show only selected application」をONにすると、 現在のアプリから出たログだけが表示されます。

検索バーで絞り込み

検索バーから Verbose / Debug / Info / Warn / Error を切り替えて見たい重要度だけを表示します。
検索バーにキーワードを入力すると、メッセージ内容やタグで絞り込みできます。

独自のLogsユーティリティを作る

複数ファイルで同じようにLog.d()を使うと管理が煩雑になります。共通クラスを作ってまとめるのがおすすめです。下記コードはログがデバッグモードでのみ表示されるので、誤ってリリースビルドで出力される心配がないです。

object Logs {
    private const val TAG = "MyApp"

    fun d(msg: String) {
        if (BuildConfig.DEBUG) Log.d(TAG, msg)
    }

    fun e(msg: String, tr: Throwable? = null) {
        Log.e(TAG, msg, tr)
    }
}

使用例:

Logs.d("ボタンがクリックされました")
Logs.e("通信エラー")

Logcatを理解すれば、アプリの内部の不具合の原因を発見できます。クラッシュの原因や処理の流れを正確に追えるようになれば、デバッグ速度が上がります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?