Androidログを表示して確認するにはどうすればよいですか?


109

Androidシステムログには多くの興味深いものがあり、多くの点で役立ちます

  • 問題の根本原因を見つける
  • 誤動作しているアプリを特定する

Androidログを表示して確認するにはどうすればよいですか?


コメントは詳細なディスカッション用ではありません。この会話はチャットに移動さました
マシューリード

回答:


59

Android 4.1以降

推奨される方法は、SDKをダウンロードして使用することですadb logcat(デバイスで「開発者オプション」を有効にする必要があります)。

システムログ全体を表示できるアプリがありますが、ルート化されたデバイスでのみ機能するか、機能adbさせるために手動コマンドを発行する必要があります。詳細については、この質問をご覧ください。

Android 4.0以前

SDKをダウンロードして、Google PlayストアからLogcat Extremを使用adb logcatまたは取得することができます。これにより、携帯電話に直接ログが表示されます。


2
または、コマンド「logcat> /sdcard/log.txt」でターミナルエミュレータを使用して、SDカード上のファイルにログを継続的に書き込むことができます。これは、ランダムな再起動の問題を理解するのに役立ちます。
チャク

いい視点ね。一部の携帯電話は些細な情報でログをスパムする傾向があるため、ファイルサイズとデータを最小限に抑えたい場合は、developer.android.com /
onik

LogCatアプリは、JellyBeanでは動作しません。GoogleはAndroid APIを変更しました。アプリは自分のアプリ以外のアプリからログを読み取る権限をもう持っていません。
レアンドロス

PCからログを収集する簡単なユーティリティを作成しました:gist.github.com/hrj/5983971
HRJ

Logcat Extremeは参照ログのための素晴らしいアプリです
Arpitパテル

57

ログファイルの場所

ログ(クラッシュからのログを含む)が表示されるディレクトリがいくつかあります。それらのすべてが標準化されているわけではありません(つまり、一部はROM固有である可能性があります)。

  • /data/anr:一部のトレースファイルは、ここで取得するように見えるが(のDalvikはANRにここにスタックトレースを書き込み、すなわち「アプリケーションが応答しません」別名「強制終了」;例えば参照抜粋を記録し、ここで
  • /data/dontpanic標準の場所(AOSP)のようで、トレースなどのクラッシュログが含まれています(viaForensicsStackOverflowを参照)
  • /data/kernelpanics 別の場所です。Androidデバイスで「カーネルパニック」が発生していないため、コンテンツはまだありません。
  • /data/panic/panic_daemon.config構成されている他の場所を指している可能性があります-私のDroid 2では言及しています/sdcard/panic_data/
  • 前述のDroid 2には/data/panicreportsディレクトリもあります(ここは空です)
  • /data/tombstones複数のtombstone_nnファイルを保持する場合があります(nnシリアルであり、新しいファイルごとに増加します)。墓石は死者のために置かれているので、ここでは「偶然にプロセスが死んだ」(つまりクラッシュした)ために行われます。これはLinux / Unixシステムでは「コアダンプ」と呼ばれます。ただし、すべてのアプリがトゥームストーンを作成するわけではありません。これは、開発者が明示的に有効にする必要があります(Androidコアダンプのデバッグを参照)。

私を逃れた場所がいくつかあるかもしれません。しかし、ほとんどのロギングはで行われるためtmpfs、これらのデータは再起動すると失われ、OPの質問と一致しません。

ターミナルアプリ(またはadb)で使用するログコマンド

いくつかのコマンドを使用すると、大量の情報を取得できます。ほとんどの場合、ファイルにリダイレクトする(> filename.ext)か、フィルターを介してパイプする()ことをお勧めします| grep search-for-this

カーネルログ

以下はルートなしで動作します:

$ dmesg
<6>[82839.126586] PM: Syncing filesystems ... done.
<7>[82839.189056] PM: Preparing system for mem sleep
<4>[82839.189361] Freezing user space processes ... (elapsed 0.05 seconds) done.
<4>[82839.240661] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done.
<snip>

Logcat

ここでは、たとえば、ラジオ、イベントなど、興味のあるエリアを指定できます。

# logcat -b events
I/am_create_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,,3721]
I/am_destroy_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,3721]
I/notification_cancel( 3457): [nitro.phonestats,4,0] 
<snip>

デバイス情報を取得する

そしてそれのトン:デバイスの詳細、アカウント情報、サービス...

$ dumpsys
Currently running services:
  LocationProxyService
  SurfaceFlinger
  accessibility
  account
  activity
<snip>
DUMP OF SERVICE account:
Accounts:
  1 Account {name=xxxxxxx@googlemail.com, type=com.google}
<snip> 

$ dumpstate
========================================================
== dumpstate: 2012-08-18 23:39:53
========================================================

Build: Gingerbread GWK74 - CyanogenMilestone2
Bootloader: 0x0000
Radio: unknown 
<snip>
------ MEMORY INFO (/proc/meminfo) ------
MemTotal: 487344 kB
MemFree: 10436 kB 
<snip>

オールインワン

logcatからdumpstateまで、すべて一緒に大きなボールを作成します。

$ bugreport > /mnt/sdcard/bugreport.txt

あなたは本当に最後のコマンドをリダイレクトしたいと思うはずです... xD

許可に関する何か

PS:ほとんどのソースは内部ストレージにあるため、当然、これらの情報へのアクセスにはルートが必要になる場合があります。


adb logcatコマンドの詳細については、こちらを参照してください
テスト

または、ロギングタグwiki @testingを確認してください。さらに多くの参照があります:)
Izzy

「Android Core Dumpsのデバッグ」へのリンクは無効です。別の方法を入手できますか?
スパイディー

1
@Spideyには、この種の問題のためのArchive.ORGが常にあります(そこの作業コピーにリンクがあります)。
イジー

12

CatLogは、aLogcatよりもAndroidログを少し良く表示することがわかりました。それにadb logcat、それは私が使用しているものです。


LogCatアプリに関する上記のコメントを参照してください。
レアンドロス

2
質問を更新しました。回答の順序は時間とともに変化する可能性があるため、相対位置情報(「上」など)は簡単に古くなる可能性があることに注意してください。
フロー

3

新しいAndroidバージョンでも機能するルートなしのメソッド:

前提条件:

  • Linux、Windows、またはMac
  • デバイス用のUSBケーブル
  • Androidデバイス

手順:

  1. adbを使用するためのデバイスドライバーをインストールします。必要なものはすべてここにあります
  2. OSのadb実行可能ファイルをダウンロードします。これはAndroid SDKの一部ですが、adb実行可能ファイルを個別に見つけることができる場合があります。
  3. Androidデバイスを接続します。
  4. 開発者向けオプションを有効にします
  5. USBデバッグを有効にします。
  6. コマンドプロンプト(windows)またはターミナル(linux / mac)を開きます。方法:Windowsの場合:windows + r> "cmd"(引用符なし)を入力> Enterをクリック| Linuxの場合:ターミナルを開く方法がわかりませんか?笑| Macの場合:TerminalSpotlightに入力して開きます
  7. adb実行可能ファイルがあるディレクトリへのCD。Windowsの場合:adb実行可能ファイルをダウンロードしたディレクトリに移動し、Shift +右クリックして[コンソールを開く](または同様の)を選択します。Linux / Macの場合:ディレクトリを右クリックし、「ターミナルをここで開く」を選択します(または単にCDをディレクトリに入れます)
  8. cmd / terminal:adb devicesを入力して、デバイスが正しく接続されていることを確認します。
  9. デバイスが適切に選択されている場合は、入力しadb logcatて、強力で魔法のlogcatとも呼ばれるスタックトレースを表示します。
  10. デバイスでエラー(またはその他)を再現します。
  11. その直後に、cmd /ターミナルウィンドウ全体をhttp://pastebin.com/などのpaste-serviceに貼り付けて送信します。

(ほとんどがLeandrosからコピーされました)


2

無料アプリのSysInfoプロジェクトページ)は、システムログを表示するだけでなく、完全なシステムレポートを圧縮して、電子メール、ドロップボックス、NFCなどで送信します。他の多くの興味深いシステム情報は言うまでもありません。


(はい、私はほぼ一年遅れていますが、これは言及が必要です)。
JRobert

両方のリンクが壊れています。
jk7

2番目のリンク(プロジェクトページ)は引き続き機能しますが、その最後のエントリは2010年のものです。それ以降、Androidの変更により、Sysinfoの機能の多くが壊れています。
Jロバート

-1

にあります/sdcard/bugreports


3
携帯電話にそのようなフォルダを持ったことはありません...これはメーカーまたはデバイスに固有ですか?
マシューリード

2
Logcat - CyanogenModウィキあなたは/ SDカード/バグレポートでバグレポートファイルを作成するために、魔法のキーの組み合わせを使用することができます。OPは「自動生成された」ものを探すため、a)ビット固有(おそらくCMに)、b)質問への回答ではないようです。
イジー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.