with util studio log hacer debug como app android logging adb logcat android-logcat

android - util - logcat apk



adb logcat-f log.txt error: no se pudo abrir el archivo de salida: sistema de archivos de solo lectura (3)

En windows (win7), depurando un teléfono real a través de USB, quiero volcar el registro logcat en un archivo en mi PC. La tasa de datos está más allá de lo que se puede usar en eclipse; Y quiero todo el registro sin filtrar.

De acuerdo con las instrucciones de la línea de comandos de logcat, esto debería ser trivial con

logcat -f logfile.txt

Estoy usando adb logcat -f logfile.txt en la línea de comandos de Windows

pero esto siempre responde con

couldn''t open output file: Read-only file system

El sistema de archivos no es de solo lectura. La creación y escritura de archivos allí funciona bien, y una redirección burda como adb logcat > logfile.txt también funciona como se esperaba. Proporcionar la ruta completa al archivo de registro no hace ninguna diferencia.

Me gustaría hacer uso de las opciones logcat -n y -r pero requieren que -f funcione.

¿Alguna sugerencia?

Notas Esta pregunta es parecida a una pregunta en Ubuntu, pero no tiene respuestas que me sean útiles en Windows, y una sugerencia que ya he probado y no funciona. La mayoría de las referencias similares en SO simplemente citan la página de ayuda, diciendo que -f filename debería funcionar.

Pregunta editada para mantenerla actualizada con comentarios y respuestas útiles.


Desafortunadamente, la opción -f para logcat parece que solo puede crear archivos en el sistema de archivos del dispositivo Android y no en el host de desarrollo .

Al especificar un nombre de archivo simple, es muy probable que intentara crear un archivo en el directorio raíz del dispositivo, que normalmente no se puede escribir.

Si desea crear un archivo en el dispositivo, especifique una ubicación de escritura (las rutas apropiadas variarán según el dispositivo y la compilación, pero para tomar un ejemplo actual):

adb logcat -f /mnt/sdcard/log.txt

A modo de explicación adicional, el experimento muestra que escribir adb logcat hace que se adb logcat el programa /system/bin/logcat en el dispositivo, de manera similar a lo que sucede si escribe adb shell logcat . ADB puede pasar de forma trivial la salida estándar o de error de este programa a la máquina host, pero no hay una API del lado del dispositivo que un programa que se ejecuta en el dispositivo pueda usar para pedirle a ADB que cree archivos en la máquina de desarrollo. Sería posible que las operaciones de guardar en archivo y de rotación se implementen en la parte de ADB que se ejecuta en la máquina de desarrollo, pero no es así como funciona actualmente.

La solución de Bonitarunner mediante una redirección de shell en la máquina de desarrollo es una respuesta simple. Debería ser posible crear un programa de filtro del lado del host o un script que implementara una funcionalidad de limitación y rotación similar a las opciones -r y -n .


Utilice adb logcat -d > log.txt

Esto escribirá los registros en su máquina de desarrollo.


adb logcat > logfile.txt adb logcat *:E > logfile.txt

Si solo quieres filtrar los errores.

Esto funciona para mí en MS Windows 7.