Sous Windows (win7), en déboguant un vrai téléphone via USB, je veux vider le journal logcat dans un fichier sur mon PC. Le taux de données dépasse ce qui est utilisable dans Eclipse; et je veux tout le journal non filtré.
Selon les instructions de ligne de commande logcat cela devrait être trivial avec
logcat -f logfile.txt
J'utilise adb logcat -f logfile.txt
Sur la ligne de commande Windows
mais cela répond toujours par
couldn't open output file: Read-only file system
Le système de fichiers n'est pas en lecture seule. La création et l'écriture de fichiers fonctionnent correctement et une redirection grossière telle que adb logcat > logfile.txt
Fonctionne également comme prévu. Fournir le chemin d'accès complet au fichier journal ne fait aucune différence.
J'aimerais utiliser les options -n
Et -r
De logcat mais elles nécessitent que -f
Fonctionne.
Aucune suggestion?
Remarques. Cette question est proche de ne question posée sur Ubunt mais qui n'a pas de réponses qui me soient utiles sur Windows, et une suggestion que j'ai déjà essayée et qui ne fonctionne pas. La plupart des références similaires sur SO citent simplement la page d'aide, en disant que -f filename
Devrait fonctionner.
Question modifiée pour la maintenir à jour avec des commentaires et réponses utiles.
Malheureusement, le -f
l'option pour logcat
semble pouvoir uniquement créer des fichiers sur le système de fichiers du appareil Android et non sur le hôte de développement.
En spécifiant un nom de fichier nu, vous l'avez probablement tenté de créer un fichier dans le répertoire racine de l'appareil, qui n'est normalement pas accessible en écriture.
Si vous souhaitez créer un fichier sur le périphérique, spécifiez un emplacement accessible en écriture (les chemins appropriés varient en fonction du périphérique et de la construction, mais pour prendre un exemple actuel):
adb logcat -f /mnt/sdcard/log.txt
À titre d'explication supplémentaire, l'expérience montre que la saisie de adb logcat
provoque le /system/bin/logcat
programme sur l'appareil à exécuter, similaire à ce qui se passe si vous tapez adb Shell logcat
. ADB peut renvoyer trivialement la sortie standard ou d'erreur de ce programme à la machine hôte, mais il n'y a pas d'API côté périphérique qu'un programme en cours d'exécution sur le périphérique pourrait utiliser pour demander à ADB de créer des fichiers sur la machine de développement. Il serait possible que les opérations de sauvegarde dans un fichier et de rotation soient implémentées dans la partie d'ADB qui s'exécute sur la machine de développement, mais ce n'est pas ainsi que cela fonctionne actuellement.
la solution de bonitarunner utilisant une redirection Shell sur la machine de développement est une réponse simple. Il devrait être possible de proposer un programme ou un script de filtrage côté hôte qui implémenterait des fonctionnalités de limitation et de rotation similaires à -r
et -n
options.
adb logcat > logfile.txt
adb logcat *:E > logfile.txt
Si vous souhaitez filtrer uniquement les erreurs.
Cela fonctionne pour moi sur MS Windows 7.
Utilisation adb logcat -d > log.txt
Cela va écrire les journaux sur votre machine de développement.