atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
Androidアプリ開発ノート
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
Androidアプリ開発ノート
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
Androidアプリ開発ノート
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • Androidアプリ開発ノート
  • ログ出力

Androidアプリ開発ノート

ログ出力

最終更新:2012年09月28日 19:01

conn

- view
メンバー限定 登録/ログイン
エミュレーターでも実機でもデバッガが使えるので、ログ出力の意義をあまり感じない。
実機でアプリを実際に使ったとしても、ダウンロードされたアプリが出したログを開発者が確認できるわけでもないのであまり意味がないかもしれない。

どうせやるならばアプリで例外をキャッチした時点で、ダイアログを表示し開発者にトレース情報をメールなどで送りつけるよう促すのが効果的なのではないだろうか。うーん……ログの意義はやはり感じ取れない。

とはいえ、ログはアプリケーションの基本なので一応は動作を確認し、情報をまとめておく。


情報源

全ての本家の情報。英語です。

http://developer.android.com/tools/debugging/debugging-log.html
http://developer.android.com/reference/android/util/Log.html

http://developer.android.com/tools/help/traceview.html


ログレベル

DEBUGログは開発時のみ出力されるログです。実際のアプリに必要のない開発用のログはDEBUGレベルで出力しましょう。

ログレベルの解釈は人によって微妙に変わってきます。
以下に、一般的なログレベルの分け方を優先度順に表にします。

ASSERT ERRORよりも更に高いレベルのエラー。使いどころが分からない
ERROR 通常のエラー。アプリケーションの特定の機能が使えない状態や、特定の操作がエラーによりキャンセルされた場合など
WARN 警告。アプリケーションは利用できるがERRORを起こす可能性があったり、操作が完了されたものの不備がある可能性など
INFO 単なる情報。起動、停止などを記録したりする。アプリケーションの動作に悪影響を及ぼすことはない
DEBUG デバッグ情報。開発時のみに使用するログ
VERBOSE 詳細な情報を出力する。開発時のみに使用するログ

VERBOSEはDEBUGログよりも更に低いレベルで、開発時以外のコンパイルからは除外される。DEBUGはコンパイルに含まれるが、機器のログ出力レベルがデフォルトではINFOのため設定を変更しない限りは出力されない(ただし、ちゃんとisLoggableを評価してる場合に限る)。

ログ出力処理はアプリに非常に負荷がかかる。そのため不用なログ出力は控えるのが良い。
またif文でisLoggableを使用しログ出力の要否を確認することがshouldされている。isLoggableを評価しない場合、ログ出力レベルの設定に関わらずDEBUGログまで出力されてしまうようだ。


ログの確認方法


LogCat

Eclipseからログ出力を確認するにはLogCatを使用するのが便利。
Eclipseのメニューから「ウインドウ」>「ビューの表示」>「その他」>「Android」「LogCat」で開くことができる。

ワークスペース内のプロジェクトが出力するログをLogCatで確認する場合は、設定の変更が必要。
Eclipseのメニューから「ウインドウ」>「設定」を開き、「Android」>「LogCat」を選択し、そこで「ワークスペース内のアプリケーションからのメッセージのために logcat をモニターする」にチェックを入れる。
優先度の設定は、その優先度以上のログが出力されるとLogCatビューへの表示を開始し、フィルターを追加し該当プロジェクトのみの分を表示する仕組み。最低の優先度「VERBOSE」を指定すれば良い。仮に「ASSERT」を選択すると「ERROR」や「DEBUG」のログ出力ではキャッチされず、一切ログが表示されなくなる。

他のホームページなどの情報によると、これとは違う情報が書かれている。バージョンによって変わってくるのだろうか。悩ましい。

コマンドラインからlogcat

コマンドラインから ADB を使用し logcat を実行する。
adb logcat
と実行するとログが流れるが、ここにはEclipseから実行したプロジェクトのログは表示されない。

正しくは、
adb -e logcat
もしくは
adb -d logcat
を使用する。「-e」が仮想Android端末、「-d」がUSB接続の実機。
また
adb devices
adb -s XXXXXXX logcat
デバイスのシリアルを「devices」で確認し「-s」スイッチに続いてシリアルを指定することで、対象の端末分のみのログを表示することができる。


ログの出力方法

ログを出力するにはAndroid.util.Logクラスを使用する。
importするだけで使用可能になる。

ログレベルごとにメソッドが用意されており、ASSERTを除き、それぞれのレベルの頭文字がメソッド名になっている。
ASSERTレベルの wtf は、どうやら”What a Terrible Failure !!”(なんて不様な失敗だ!)の略らしい。

ASSERT wtf
ERROR e
WARN w
INFO i
DEBUG d
VERBOSE v

ログ出力メソッドを呼ぶときに必ず指定するタグだが、これはどれがログを出力したのか識別する文字列で、半角23文字以内で任意に設定する。

それぞれのメソッドには、
  • タグとメッセージを指定する
  • タグとメッセージと例外オブジェクトを指定する
2種類が用意されている。
またwtfには、タグと例外オブジェクトを指定するものもある。

以前は日本語のログを出すと LogCat で文字化けしたらしいが、自分の環境では大丈夫だった。

例
String logtag = "HelloAndroid";
Log.i(logtag, "This is INFO メッセージ");
Log.d(logtag, "This is DEBUG メッセージ");
if( Log.isLoggable(logtag, Log.DEBUG) ) {
    Log.d(logtag, "This is DEBUG メッセージ if isLoggable(DEBUG) = TRUE");
}

このコードを、特に設定を変更していない仮想Android端末で実行すると、上の2つだけが出力される。
デフォルトのログレベルはINFO。だが上のDEBUGメッセージは、ログレベルのチェックをしていないので出力される。
下のDEBUGメッセージは、ログレベルのチェックをしているので正しく出力が抑止される。

いちいちif分で囲むのも面倒なので、Logをラップしたクラスを作れば良さそうだ。
DEBUGログに関しては、isLoggableで評価するより、定数を評価する形にしたほうがコンパイル時にコードごと除去されるので、そっちの方が動作は軽くなりそうだが、未確認。
「ログ出力」をウィキ内検索
LINE
シェア
Tweet
添付ファイル
  • 2012-09-28_165946.png
Androidアプリ開発ノート
記事メニュー

メニュー


各種手順
  • トップページ
  • 開発環境構築
    • PATH設定
    • ソースコード管理
  • 仮想端末でHello,world
  • 実機で動作確認
基礎知識
  • Androidアプリの基本構成
    • Androidプロジェクト
    • アクティビティのライフサイクル
  • ログ出力
  • 異なる環境への最適化

逆引き
  • リストから値を選択する
    • Spinnerの使用
    • ListViewの応用
  • タイマーを使う
  • 着信音を鳴らす
  • ステータスバーに通知を出す







更新履歴

取得中です。

ここを編集
記事メニュー2

wiki内検索

検索 :



管理人のオススメ


Javaの基本から学ぶならコレ。定番の一冊

独習Java 第4版



名著。オブジェクト指向を深く学ぶなら。

オブジェクト指向でなぜつくるのか 第2版 知っておきたいOOP、設計、関数型言語の基礎知識



作りながら体で覚えることが大事

作ればわかる!Androidプログラミング―10の実践サンプルで学ぶAndroidアプリ開発入門 (Smart Mobile Developer)



その他のアイテムを探す








ここを編集
最近更新されたページ
  • 4656日前

    トップページ
  • 4662日前

    ServiceのBind
  • 4664日前

    wiki初期画面のバックアップ
  • 4664日前

    ソースコード管理
  • 4664日前

    メニュー
  • 4665日前

    着信音を鳴らす
  • 4668日前

    ステータスバーに通知を出す
  • 4670日前

    タイマーを使う
  • 4671日前

    ListViewの応用
  • 4673日前

    TextViewの応用
もっと見る
最近更新されたページ
  • 4656日前

    トップページ
  • 4662日前

    ServiceのBind
  • 4664日前

    wiki初期画面のバックアップ
  • 4664日前

    ソースコード管理
  • 4664日前

    メニュー
  • 4665日前

    着信音を鳴らす
  • 4668日前

    ステータスバーに通知を出す
  • 4670日前

    タイマーを使う
  • 4671日前

    ListViewの応用
  • 4673日前

    TextViewの応用
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. 鹿乃つの氏 周辺注意喚起@ウィキ
  2. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  3. MadTown GTA (Beta) まとめウィキ
  4. R.E.P.O. 日本語解説Wiki
  5. AviUtl2のWiki
  6. シュガードール情報まとめウィキ
  7. ソードランページ @ 非公式wiki
  8. ドラゴンボール Sparking! ZERO 攻略Wiki
  9. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  10. Dark War Survival攻略
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  6. 検索してはいけない言葉 @ ウィキ
  7. 発車メロディーwiki
  8. オレカバトル アプリ版 @ ウィキ
  9. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  10. ニコニコMUGENwiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 過去の行動&発言まとめ - 鹿乃つの氏 周辺注意喚起@ウィキ
  2. マイティーストライクフリーダムガンダム - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  3. 参加者一覧 - ストグラ まとめ @ウィキ
  4. 前作からの変更点 - 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  5. 旧トップページ - 発車メロディーwiki
  6. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  7. マリオカート ワールド - アニヲタWiki(仮)
  8. コメント/雑談・質問 - マージマンション@wiki
  9. フェイルノート - 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  10. RqteL - ストグラ まとめ @ウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.