web-dev-qa-db-fra.com

Comment enregistrer le contenu de LogCat dans un fichier?

J'ai ajouté des chaînes de débogage (à l'aide de Log.d ()) et je souhaite les voir en contexte à partir du contenu de logCat. L'icône "Enregistrer" de LogCat contient un indice "Enregistrer les éléments sélectionnés", mais il doit exister un moyen rapide de simplement enregistrer le contenu entier ou de sélectionner le contenu complet, mais je ne vois pas comment le faire.

27
B. Clay Shannon

Vous n'obtenez pas la réponse que vous cherchez, êtes-vous?.

Deux façons de faire ce que vous voulez: 1) Faites un clic droit dans la fenêtre de messages de logcat, choisissez tout sélectionner. Ensuite, votre sauvegarde sera constituée de tous les messages logcat de cette fenêtre (y compris ceux qui ne sont pas affichés).
2) lorsque le focus est dans la fenêtre de messages de logcat, tapez control-A, cela sélectionnera tous les messages. Puis sauvegardez etc. etc. 

18
mwengler

Pour enregistrer le contenu du fichier journal dans le fichier, vous devez rediriger vers le dossier des outils de la plate-forme Android sdk et appuyer sur la commande ci-dessous

adb logcat > logcat.txt

Un fichier portant le nom "logcat.txt" sera créé dans le dossier platform-tools. vous pouvez changer le nom en fonction de vos intérêts. prendre plaisir

36
Dinesh Prajapati

Pour enregistrer le journal LogCat dans un fichier par programme sur votre appareil, utilisez par exemple le code suivant:

String filePath = Environment.getExternalStorageDirectory() + "/logcat.txt";
Runtime.getRuntime().exec(new String[]{"logcat", "-f", filepath, "MyAppTAG:V", "*:S"});

"MyAppTAG:V" définit le niveau de priorité de toutes les balises sur Verbose (priorité la plus basse)

"*:S" définit le niveau de priorité de toutes les balises sur "silencieux"

Plus d'informations sur logcat ici .

16
yuralife

En plus de répondre par Dinesh Prajapati , Use 

 adb -d logcat <your package name>:<log level>

où -d est pour device et vous pouvez également choisir -e pour le journal de l'émulateur et le niveau de journal est a/d/i/v/e/w etc.

Maintenant, votre commande va comme:

adb -d logcat com.example.example:V > logfileName_WithPath.txt
9
kAmol

Ouvrez l'invite de commande et localisez votre adb.exe (ce sera dans votre Android-sdk/platform-tools)

adb logcat -d > <path-where-you-want-to-save-file>/filename.txt

Si vous omettez le chemin, cela enregistrera logcat dans le répertoire de travail courant

L'option -d indique que vous videz le contenu actuel, puis vous quittez. Préférez notepad ++ pour ouvrir ce fichier afin de pouvoir tout obtenir dans un format lisible.

8
Ashish John

Utilisez logcat tool avec le commutateur -d ou -f et la méthode exec () .

3
adatapost
String filePath = folder.getAbsolutePath()+ "/logcat.txt"; 
Runtime.getRuntime().exec(new String[]{"logcat", "-f", filePath, "MyAppTAG:V", "*:E"});

Astuce supplémentaire pour l'approche programmatique:

String filePath = Environment.getExternalStorageDirectory() + "/logcat.txt";
Runtime.getRuntime().exec(new String[]{"logcat", "-f", filepath, "MyAppTAG:V", "*:S"});

Cela ouvre un flux de sortie continu entre logcat et le fichier fourni. Cela peut entraîner un blocage si vous attendez ensuite le processus renvoyé par exec ou une exception si le fichier fourni est supprimé prématurément.

J'ai trouvé que l'inclusion de l'indicateur "-d" vide simplement logcat et ferme la connexion, ce qui empêche le comportement ci-dessus.

1
Pete Schmitz

Si vous êtes dans la fenêtre de la console du périphérique et que vous utilisez Teraterm, dans le menu, effectuez une commande Fichier | Connectez-vous et il sera automatiquement enregistré dans un fichier.

1
likejudo

Un conseil supplémentaire si vous souhaitez que seul le journal affiché dans la dernière demi-heure avec les horodatages, ou dans un autre délai défini. Ajustez le format de la date en fonction de votre système. Celui-ci fonctionne sur Ubuntu 16.04LTS:

adb Shell logcat -d -v time -t "$(date '+%m-%d %H:%M:%S.%3N' -d '30 minutes ago')" > log_name.log
1
iulisiio