<HOME

ログを出力する30分


アプリのデバッグのためにログを追加してみましょう。

ログの出力を適切に実装しておくと、第三者による検証や市場で不具合が発生した際に、ログを確認することで解析の助けになります。

  1. 「LogTraining」アプリを作成します。

    1. Android Studioを起動し、新規プロジェクトを作成します。

      「Welcome to Android Studio」画面の場合は、「Start a new Android Studio project」をクリックします。

      別のプロジェクトが開いている場合は、ツールバーから「File」→「New」→「New Project...」をクリックします。

    2. HelloWorldの時と同じようにプロジェクトを作成していきます。

      アプリ名は「LogTraining」としてください。

      今回は「Backwards Compatibility (AppCompat)」のチェックは外しておきます。

  2. アプリにログ出力の処理を追加して、出力されたログを確認します。

    1. MainActivityの処理を以下のように変更します。

      コードを表示するにはJavaScriptを有効にしてください

    2. アプリを起動してみましょう。Logcatにログが出力されます。

      コマンドプロンプトから以下のコマンドでログを確認することもできます

      adb logcat

      コードを表示するにはJavaScriptを有効にしてください

  3. ログ出力に使用するAPIについて説明します。

    • ログ出力の際によく使用するAPIは以下です。

      android.uti.Logクラスをインポートし、各種staticメソッドをコールします。

    • 「v・d・i・w・e」は、出力したいログレベルに応じて使い分けます。

      左から、「VERBOSE・DEBUG・INFO・WARNING・ERROR」のためのAPIです。

      ログレベルの概要は以下の通りです。

      下に行くほど高いログレベル、重要なログということになります。

      • VERBOSE

        DEBUGよりさらに重要度の低いログの場合に指定します。まず使うことは無いと思います。

      • DEBUG

        デバッグ目的のログの場合に指定します。

      • INFO

        重要な情報をログに残したい場合に指定します。

      • WARNING

        あまり好ましくない現象が発生した場合などに指定します。

      • ERROR

        意図しない現象が発生した場合などに指定します。

    • ログ出力APIでは、第一引数で「タグ」、第二引数で「メッセージ」を指定します。

      ログの出力結果は、以下のようになります。

      <ログ出力日時> <プロセスID>-<スレッドID>/<アプリパッケージ名> <ログレベル>/<タグ>: <メッセージ>

      11-19 15:19:05.840 24534-24534/com.example.s.logtraining I/LogTraining: onCreate(null)

    • ログ出力APIでは、第三引数でThrowableオブジェクトを指定することで、トレースログを出力することができます。

      ExceptionはThrowableを継承しているので、Exception発生時に第三引数にExceptionオブジェクトを指定するとデバッグ時に処理のトレースができて便利です。

ログに関する詳細については公式ドキュメントに記載されています。

また、Androidは先人たちがネット上にたくさんの情報を残してくれています。

これらも活用して、是非このAPIを有効に使えるようになってください。