Como filtrar o logcat no Android Studio?

96

No meu logcat há muita saída, então gostaria de filtrá-la usando algumas palavras-chave, basicamente exibindo apenas a saída que contém a (s) palavra (s) -chave. Existe uma maneira de fazer isso no Android Studio por meio da IU?

Alessandro Roaro
fonte
não, estou perguntando como filtrar as mensagens por palavra-chave.
Alessandro Roaro
a partir do android studio versão 0.4.5, você receberá mensagens apenas do aplicativo que está sendo executado. Log cat has a new option (on by default) which creates an application filter automatically such that only the launched application's output is shown
dmSherazi

Respostas:

107

Existem duas maneiras de fazer isso, ambas na guia Android na parte inferior do IDE (onde a saída do logcat é exibida).

Primeiro, você pode simplesmente digitar algo na caixa de pesquisa na parte superior e ela deve filtrar apenas as mensagens que contenham o texto digitado.

Em segundo lugar, você pode fazer uma filtragem avançada clicando no menu suspenso no canto superior direito, que deve exibir Nenhum filtro por padrão, e escolher Edit Filter Configuratione especificar o que filtrar. Usando esse método, você também salva os filtros e pode reutilizá-los selecionando-os no menu suspenso.

Captura de tela:
Pesquisar e filtrar Logcat

free3dom
fonte
1
Obrigado pela sua resposta. Já tentei o primeiro, mas ele não filtra a saída não relevante. Re: a segunda opção, infelizmente não consigo ver o menu suspenso, qual versão você está usando?
Alessandro Roaro
1
Estou usando a v0.3.5 ... adicionei uma captura de tela à resposta.
free3dom
1
Acabei de notar isso enquanto fazia a captura de tela, AINDA existe outra maneira de filtrar. No lado esquerdo (ao lado das guias) há um ícone com setas verdes - ele pode ser ligado / desligado para exibir apenas o logcat do processo selecionado na lista :)
free3dom
Obrigado, eu não tinha esses filtros na minha versão (0.3.2)
Alessandro Roaro
Sem problemas! Suponho que foi adicionado na v0.3.3 / 4 então. O Android Studio está cada vez melhor com cada versão :)
free3dom
81

O que eu faço é clicar com o botão direito em uma linha que não gosto e selecionar "Linhas de dobra como esta"insira a descrição da imagem aqui

James Hackett
fonte
9
Uau, ótimo!! Gostaria de saber disso antes!
miva2
7
Esta deve ser a resposta.
feliz por
2
Só isso resolve minha inundação por genymotion no Android Studio logcat, obrigado.
Flórida
3
Espantado por nunca ter percebido isso antes. Bom achado!
dm78
1
ok entendi :-D (basta clicar duas vezes na entrada verde com o texto: "n chamadas internas")
Aydin K.
53

Como @ free3dom disse, você pode selecionar o processo do qual deseja receber logcats. Aqui está a imagem.

Captura de tela

dmSherazi
fonte
2
Obrigado por adicionar isso. É bom tê-lo aqui para todos e só mencionei nos comentários :)
free3dom
39
Ótimos gráficos também ;-)
Gerard
1
a partir do Android Studio versão 0.4.5, você receberá mensagens apenas do aplicativo que está sendo executado. Log cat has a new option (on by default) which creates an application filter automatically such that only the launched application's output is shown
dmSherazi
1
+1 para pressioná-lo em 'Mostrar apenas logs do processo selecionado'
lujop
Eu tenho um outro problema, quando aplico o filtro da configuração do filtro, para um pacote específico, o logcat fica em branco.
Bhupesh
17

FIZ UM VÍDEO TUTORIAL PARA MOSTRAR PARA VOCÊ COMO = https://youtu.be/xw2qE5ko_9I

Dê um nome ao seu log. Chamei o meu de "wawa".

insira a descrição da imagem aqui

No Android Studio, vá para Android-> Editar configurações de filtro

insira a descrição da imagem aqui

Em seguida, digite o nome que você deu aos logs. No meu caso, é chamado de "wawa". Aqui estão alguns exemplos dos tipos de filtros que você pode fazer. Você pode filtrar por System.out, System.err, Logs ou nomes de pacote:

insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui

Gene
fonte
2
Existe uma regex para negar isso, a fim de ocultar os logs que contêm uma linha?
Hugo M. Zuleta
Não que eu saiba. Se você quiser usar regex, acho que a melhor maneira é adb no sistema operacional Android e usar Grep no Terminal Bash.
Gene
^ (?! chromium) (?! WebViewFactory) (?! zygote) .... adicione tags como essas que você deseja ocultar como (?! TAG_NAME). Se você quiser usar regex para uma tag, por exemplo. você deseja ocultar todas as marcas que começam com "asd", então você adiciona (?! (^ asd)) a esta "lista" de marcas.
Drusantia
11

Primeiro declare seus nomes de TAG em seu código, por exemplo

private static final String TAG = "MainTagName";

Em seguida, adicione instruções de registro onde deseja gerar algo

Log.d(TAG, "Activity created");

De acordo com free3dom na segunda postagem, na guia logcat, clique no menu suspenso Filtros e, em seguida, em Editar configuração de filtro.

Neste exemplo, estamos usando a opção Log Tag (regex) para exibir mensagens de log para qualquer um dos três nomes de tag correspondentes usando o pipe | separador (sem espaços):

MainTagName|SomeTagName|SomeOtherTagName
HostMyBus
fonte
2
Não recebo nenhuma saída do logcat ao usar o | para separar as duas tags (Android Studio 1.2)
Someone Somewhere
2
@SomeoneSomewhere Certifique-se de que o nome do seu TAG corresponda ao primeiro parâmetro na declaração de Log. Certifique-se de que não haja espaços entre os nomes das tags e a barra vertical, por exemplo, tag1 | tag2. Certifique-se de que está de fato acertando o comando tag ao depurar seu código. Verifique se o nível de registro está definido como Depurar ou Detalhado na lista suspensa Nível de registro na janela do logcat.
HostMyBus
2
Tentei todos os tipos de combinações. O meu falhou porque tinha meu filtro com espaços e o | como "Tag1 | Tag2". Encontrou esta resposta e removeu os espaços e funciona perfeitamente. Obrigado!
raddevus de
5

Tive problemas para ligar os filtros no Logcat. Para ver os filtros no Android Studio 3.2, você deve ativar e desativar o 'Modo Flutuante' novamente para fazer os filtros reaparecerem.

insira a descrição da imagem aqui

amor ao vivo
fonte
3

Uma alternativa que funciona para mim é selecionar a Show only selected applicationopção no menu de filtro:

insira a descrição da imagem aqui

Ojonugwa Jude Ochalifu
fonte
Alguma ideia de quando a opção "Firebase" chegou? Eu vi pela primeira vez hoje (depois de passar um tempo me perguntando por que meu aplicativo não estava mais registrando).
Richard Le Mesurier
Eu nem tinha ideia de que estava lá.
Ojonugwa Jude Ochalifu de
1
Nem eu, mas eu tinha escolhido (sem saber) e isso perdi muito tempo. Obrigado de qualquer maneira
Richard Le Mesurier
2

Não sei se as imagens da outra resposta são antigas ou se estava faltando alguma coisa, mas aqui está uma imagem atualizada.

Clique na guia Android Monitor na parte inferior e certifique-se de que a guia logcat esteja selecionada. Em seguida, digite o que deseja para filtrar sua saída. Eu filtrei o meu com o meu nome de tag TAG.

insira a descrição da imagem aqui

Suragch
fonte
2

Só para adicionar meu próprio erro:

certifique-se de que, ao usar o emulador e um dispositivo real, alterne para o dispositivo que você está depurando na lista suspensa à esquerda acima da guia logcat.

Asimov
fonte
1

consulte https://medium.com/zinuzoid/if-you-developing-android-application-1bdff0a96205

basta criar o filtro LogCat e inserir abaixo da string para "LogTag" que irá ignorar as linhas do sistema

^(?!.*(BtGatt|dalvik|Environment|DataRouter|FA|art|Wifi|ServiceManager|Atfwd|tnet|MDnsDS|Download|Bluetooth|slim|QSEECOMAPI|WVCdm|QC-time|sensors|nanohub|Drm|Babel|Dropbox|gsamlab|Cryptd|Vold|QC_|Conscrypt|Dns|sound|NetWork|OpenGL|TLog|GMPM|Microphone|Process|Dynamite|cr_|VideoCapabilities|libEGL))
Josef Vancura
fonte