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.