Saltar al contenido

Guardar Logcat en un archivo de texto en un dispositivo Android

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *