Comment puis-je afficher et examiner le journal Android?

109

Il y a beaucoup de choses intéressantes dans le journal du système Android, ce qui est utile à bien des égards

  • trouver les causes profondes des problèmes
  • identifier les applications qui se comportent mal

Comment puis-je afficher et examiner le journal Android?

Couler
la source
Les commentaires ne sont pas pour une discussion prolongée; cette conversation a été déplacée pour discuter .
Matthew Lu

Réponses:

59

Android 4.1 et plus récent

La méthode préférée consiste à télécharger le SDK et à l'utiliser adb logcat(nécessite l'activation des "options de développeur" sur le périphérique).

Il existe des applications permettant d'afficher l'intégralité du journal système. Toutefois, elles ne fonctionnent que sur des appareils enracinés ou nécessitent une commande manuelle via adbpour les faire fonctionner. Pour plus d'informations voir cette question.

Android 4.0 et plus ancien

Vous pouvez télécharger le SDK et utiliser adb logcatou obtenir Logcat Extrem sur Google Play Store, qui affiche le journal directement sur votre téléphone.

onik
la source
2
Vous pouvez également utiliser Terminal Emulator avec la commande "logcat> /sdcard/log.txt" pour l'écriture continue du journal dans un fichier de la carte SD. Cela peut aider à résoudre les problèmes de redémarrage aléatoire.
Chahk
Bon point. Certains téléphones ont tendance à spammer le journal avec des informations triviales. Si vous souhaitez réduire la taille du fichier et les données à parcourir, consultez la section "Filtrage de la sortie du journal" sur developer.android.com/guide/developing/tools/adb.html. #logcat
onik
LogCat Apps ne fonctionne pas avec JellyBean. Google a modifié l'API Android, les applications ne sont plus autorisées à lire les journaux des applications autres que les leurs.
Leandros
J'ai créé un utilitaire simple pour collecter les journaux d'un PC: gist.github.com/hrj/5983971
HRJ
Logcat Extreme est l'application intéressante pour voir le journal
Arpit Patel
57

Emplacement du fichier journal

Il existe plusieurs répertoires dans lesquels les journaux (y compris ceux provenant de crashes) peuvent apparaître - ils ne sont pas tous normalisés (certains peuvent être spécifiques à une ROM).

  • /data/anr: Certains fichiers de trace semblent arriver ici (Dalvik écrit des traces de pile ici sur ANR, c'est-à-dire "Application ne répondant pas" ou "Force-Close"; voir par exemple les extraits du journal ici )
  • /data/dontpanicsemble être un emplacement standard (AOSP) et contient certains journaux d' incidents, y compris des traces (voir par exemple viaForensics et StackOverflow )
  • /data/kernelpanics est un autre endroit - n'ayant pas eu de "panique du noyau" sur mes appareils Android, je n'ai pas encore vu de contenu.
  • le /data/panic/panic_daemon.configpeut pointer vers d'autres emplacements configurés - sur mon Droid 2, il mentionne/sdcard/panic_data/
  • mentionné Droid 2 a également un /data/panicreportsrépertoire (vide ici)
  • /data/tombstonespeut contenir plusieurs tombstone_nnfichiers (le nnnuméro de série augmentant à chaque nouveau fichier). Comme les pierres tombales sont placées pour les morts, ceci est fait ici pour les "processus morts par accident" (c'est-à-dire bloqués) - et il s'agit de ce que l'on appelle des "core dumps" sur les systèmes Linux / Unix. Cependant, toutes les applications ne créent pas de pierres tombales; cela doit être explicitement activé par le développeur (voir Débogage des core dumps sous Android ).

Il y a peut-être d'autres endroits qui m'ont échappé; mais comme la plupart des opérations de journalisation sont effectuées tmpfs, ces données sont perdues lors du redémarrage et ne correspondent pas à la question des OP.

Journal des commandes à utiliser avec une application de terminal (ou adb)

Plusieurs commandes peuvent vous fournir des tonnes d'informations. Pour la plupart d'entre eux, il est recommandé de les rediriger vers un fichier ( > filename.ext) ou de les diriger vers un filtre ( | grep search-for-this):

Journal du noyau

Ce qui suit fonctionne sans root:

$ 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

Ici, vous pouvez par exemple spécifier le domaine qui vous intéresse - radio, événements ...

# 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>

Obtenir des informations sur l'appareil

Et des tonnes: spécificités de l'appareil, informations de compte, services ...

$ dumpsys
Currently running services:
  LocationProxyService
  SurfaceFlinger
  accessibility
  account
  activity
<snip>
DUMP OF SERVICE account:
Accounts:
  1 Account {[email protected], 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>

Tout en un

Faites une grosse boule avec tout, de logcat à dumpstate:

$ bugreport > /mnt/sdcard/bugreport.txt

Je suis sûr que vous voulez vraiment rediriger cette dernière commande ... xD

Quelque chose à propos des autorisations

PS: Naturellement, l’accès à ces informations peut nécessiter l’utilisation de root, car la plupart des sources se trouvent dans la mémoire interne.

Izzy
la source
Pour en savoir plus sur les commandes adb logcat, voir ici .
test
Vous pouvez également consulter notre tag-wiki de journalisation @testing - qui contient encore plus de références :)
Izzy
Le lien pour "Débogage des core dumps Android" est mort, pouvons-nous avoir une alternative?
Spidey
1
@Spidey, il y a toujours Archive.ORG pour ce genre de problème (le lien y mène à une copie de travail).
Izzy
12

A constaté que CatLog affiche le journal Android un peu mieux que aLogcat. En plus adb logcat, c'est ce que j'utilise.

Couler
la source
Voir mon commentaire ci-dessus concernant les applications LogCat.
Leandros
2
J'ai mis à jour la question. Veuillez noter que les informations de position relative (par exemple, "ci-dessus") peuvent facilement devenir obsolètes, car l'ordre des réponses pourrait changer avec le temps.
Flux
3

Une méthode sans racine, qui fonctionne même avec les nouvelles versions d'Android:

Conditions préalables:

  • Linux, Windows ou Mac
  • Câble USB pour votre appareil
  • Appareil Android

Instructions:

  1. Installez votre pilote de périphérique pour utiliser adb. Vous trouverez tout ce dont vous avez besoin ici
  2. Téléchargez le fichier exécutable adb pour votre système d'exploitation. Il fait partie du SDK Android, mais vous pourrez peut-être trouver l'exécutable adb individuellement.
  3. Connectez votre appareil Android.
  4. Activer les options du développeur .
  5. Activer le débogage USB.
  6. Ouvrez une commande promt (windows) ou terminal (linux / mac). Comment le faire: Sous Windows: Windows + r> entrez "cmd" (sans guillemets)> cliquez sur entrer | Sous Linux: Vous ne savez pas comment ouvrir un terminal? LOL | Sur Mac: tapez TerminalSpotlight et ouvrez-le
  7. CD dans le répertoire où se trouve l'exécutable adb. Sous Windows: Accédez au répertoire dans lequel vous avez téléchargé l'exécutable adb, Maj + clic droit, puis sélectionnez "Ouvrir la console" (ou similaire) | Sous Linux / Mac: cliquez avec le bouton droit de la souris sur le répertoire et sélectionnez "Ouvrir le terminal ici" (ou simplement CD dans le répertoire)
  8. Tapez votre cmd / terminal: adb devicespour vérifier que votre appareil est correctement connecté.
  9. Si votre appareil est correctement sélectionné, saisissez-le adb logcatpour afficher le logcat puissant et magique, ou stacktrace.
  10. Reproduisez votre erreur (ou quoi que ce soit) sur votre appareil.
  11. Juste après, collez toute la fenêtre cmd / terminal dans un service de collage tel que http://pastebin.com/ et envoyez-le nous.

(Principalement copié de Leandros )

Nicolas Raoul
la source
2

L'application gratuite SysInfo ( Page du projet ) affiche les journaux système ainsi qu'un fichier de rapport système complet à envoyer par courrier électronique, par boîte de dépôt, par NFC, etc. Sans oublier de nombreuses autres informations système intéressantes.

JRobert
la source
(Ouais, j'ai presque un an de retard, mais celui-ci mérite une mention).
JRobert
Les deux liens sont cassés maintenant.
Jk7
Le deuxième lien (page du projet) fonctionne toujours pour moi, mais les dernières entrées datent de 2010. Les modifications apportées par Android ont depuis lors brisé de nombreuses fonctionnalités de Sysinfo.
JRobert
-1

Il est situé dans /sdcard/bugreports.

wasimys
la source
3
Je n'ai jamais eu un tel dossier sur mon téléphone ... est-ce spécifique à un fabricant ou à un appareil?
Matthew Lu
2
Depuis Logcat - CyanogenMod Wiki : Vous pouvez utiliser une combinaison de clés magiques pour créer un fichier de rapport de bug dans / sdcard / bugreports. Cela semble donc être a) un peu spécifique (probablement à CM), et b) pas la réponse à la question, car le PO recherche les "générés automatiquement".
Izzy