Android – Salvar Logcat em arquivo (Save LogCat To A Text File)

logcat

O método abaixo é responsável por criar um arquivo de log na raiz do sdcard/ com a data do dia mais o appName passado por parametro. Após gerar o arquivo ele limpa o log do sistema, pois se chamado novamente ele escreve as novas informações no final do arquivo.

public class LogCat {
    private static final String LOG = "LogCat";

    public static File extractLogToFile(Context context, String appName) {
        //set a file
        SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd", Locale.ENGLISH);
        String fullName = appName.toUpperCase() + "_" + df.format(new Date()) + ".log";
        File file = new File(Environment.getExternalStorageDirectory(), fullName);
        try {
            if (!file.exists()) file.createNewFile();

            String command = String.format("logcat -d -v threadtime " + context.getPackageName() + "*:*");
            Process process = Runtime.getRuntime().exec(command);

            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            StringBuilder result = new StringBuilder();
            String currentLine = null;

            while ((currentLine = reader.readLine()) != null) {
                result.append(currentLine);
                result.append("\n");
            }

            FileWriter out = new FileWriter(file, true);
            out.append(result.toString());
            out.flush();
            out.close();

            //clear the log
            try {
                Runtime.getRuntime().exec("logcat -c");
            } catch (IOException e) {
            }
        } catch (IOException e) {
            Log.e(LOG, "extractLog", e);
            file = null;
        }

        return file;
    }
}

Android – Lendo o Logcat de dentro de um app (Read logcat programmatically within application)

logcat

O sistema de exploração Android fornece um mecanismo para a coleta e visualização de logs chamado logcat. Nele as mensagens de depuração e de sistemas de várias aplicações são recolhidas e registradas, e podem então ser visualizadas e filtrada pelo comando logcat.

Para obter informações completas sobre as opções LogCat e especificações de filtragem, consulte Leitura e Escrita Logs.
Para mais informações sobre como acessar logcat de DDMS, ao invés da linha de comando, consulte Usando o DDMS .

Neste post vamos mostrar como ler o arquivo de log do android programaticamente. Primeiro vamos inserir as seguintes permissões:

<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />

Agora para capturar o log: Continue reading