Deseamos compartirte la mejor respuesta que hallamos por todo internet. Nosotros queremos que te resulte de mucha ayuda y si deseas comentarnos alguna mejora hazlo con total libertad.
Solución:
Use una clase de aplicación al comienzo de su aplicación. Eso permite un manejo adecuado de archivos y registros.
El siguiente código crea un archivo de registro en la siguiente ubicación:
/ExternalStorage/MyPersonalAppFolder/logs/logcat_XXX.txt
XXX es la hora actual en milisegundos. Cada vez que ejecute su aplicación, se creará un nuevo archivo logcat_XXX.txt.
public class MyPersonalApp extends Application
/**
* Called when the application is starting, before any activity, service, or receiver objects (excluding content providers) have been created.
*/
public void onCreate()
super.onCreate();
if ( isExternalStorageWritable() )
File appDirectory = new File( Environment.getExternalStorageDirectory() + "/MyPersonalAppFolder" );
File logDirectory = new File( appDirectory + "/logs" );
File logFile = new File( logDirectory, "logcat_" + System.currentTimeMillis() + ".txt" );
// create app folder
if ( !appDirectory.exists() )
appDirectory.mkdir();
// create log folder
if ( !logDirectory.exists() )
logDirectory.mkdir();
// clear the previous logcat and then write the new one to the file
try
Process process = Runtime.getRuntime().exec("logcat -c");
process = Runtime.getRuntime().exec("logcat -f " + logFile);
catch ( IOException e )
e.printStackTrace();
else if ( isExternalStorageReadable() )
// only readable
else
// not accessible
/* Checks if external storage is available for read and write */
public boolean isExternalStorageWritable()
String state = Environment.getExternalStorageState();
if ( Environment.MEDIA_MOUNTED.equals( state ) )
return true;
return false;
/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable()
String state = Environment.getExternalStorageState();
if ( Environment.MEDIA_MOUNTED.equals( state )
necesita los permisos correctos y el nombre de su clase de aplicación en su archivo .manifest:
Editar:
si desea guardar el registro de solo algunas actividades en particular…
reemplazar:
process = Runtime.getRuntime().exec("logcat -f " + logFile);
con:
process = Runtime.getRuntime().exec( "logcat -f " + logFile + " *:S MyActivity:D MyActivity2:D");
adb shell logcat -t 500 > D:logcat_output.txt
Vaya a su terminal/símbolo del sistema y navegue a la carpeta con adb, si aún no se ha agregado a sus variables ambientales y pegue este comando.
t son las rectas numéricas que necesitas ver
D:logcat_output.txt es donde se almacenará su logcat.
Use la opción -f con logcat en su clase:
Runtime.getRuntime().exec("logcat -f" + " /sdcard/Logcat.txt");
Esto volcará los registros en el dispositivo almacenado en archivos.
Tenga en cuenta que la ruta “/sdcard/” puede no estar disponible en todos los dispositivos. Debe usar las API estándar para acceder al almacenamiento externo.
Nos puedes añadir valor a nuestra información participando con tu experiencia en las interpretaciones.