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:

No exemplo abaixo criei uma thread que vai inserir as linhas capturada pelo comando em um StringBuilder chamada log.

        new Thread() {
            @Override
            public void run() {
                try {
                    //no comando passado, leio tudo da tag StrictMode relativo a erros (:E)
                    // o comando '-v long' é o formato de saida do log (contendo data)
                    Process process = Runtime.getRuntime().exec("logcat -v long StrictMode:E *:S");
                    BufferedReader bufferedReader = new BufferedReader(
                            new InputStreamReader(process.getInputStream()));

                    StringBuilder log = new StringBuilder();
                    String line = "";
                    while ((line = bufferedReader.readLine()) != null) {
                        log.append(line);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }.start();

Para um bom programador isso basta. A thread ficara rodando e aguardando novas entradas no Log.

Criei um projeto de exemplo aonde inserimos os dados da saida em um TextView.
Link DropBox: (aqui)

O comando logcat aceita varios filtros veja:
http://developer.android.com/tools/debugging/debugging-log.html

Fonte Imagem: https://lh6.googleusercontent.com/-JbuOHpYnd2w/T6u7q64bEuI/AAAAAAAAoYU/Yc5J0BrTHJY/s350/logcat.png

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s