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