O Logcat permite filtrar logs, mas funciona da seguinte maneira: você define filtros e o logcat exibe apenas mensagens que correspondem aos filtros. Mas existe uma maneira de exibir todos os logs, EXCETO alguns TAGs definidos por filtros?
122
Respostas:
Se você estiver usando,
adb logcat
você pode canalizá-lo através do grep e usá-lo na correspondência invertida: Na página de manual do grep :Por exemplo:
Você pode estender isso usando expressões regulares .
Aqui está um exemplo dessa expressão:
Este verificaria se algum dos dados ocorria, o grep não os listaria.
fonte
grep
é um comando unix padrão. Para janelas, você pode tentarfind /V "notshownmatchpattern"
. PS Aparentemente, o shell adb também possui umgrep
. Mas não é o mesmo que o unix padrãogrep
!Você pode fazer isso no DDMS Monitor (e também no Eclipse ou Android Studio) com a caixa de entrada de expressão regular e declarações negativas de antecipação , por exemplo, estou excluindo muito ruído do meu log com o seguinte:
(A "tag:" não faz parte da expressão regular, mas diz ao LogCat para aplicar apenas a regex ao campo Tag. Se você usar esse truque em um filtro salvo, coloque apenas a expressão regular na caixa de entrada "Tag" e omita o prefixo "tag:")
No painel de monitor de logcat do Android Studio, você pode configurar um filtro salvo para isso, abrindo o menu suspenso no canto superior direito (pode ter "Mostrar apenas o aplicativo selecionado" selecionado) e selecionando Editar configuração do filtro. Crie um novo filtro de logcat e coloque
^(?!(WifiMulticast
... etc.))
na caixa Tag de log, com aRegex
caixa de seleção marcada.fonte
Se você deseja excluir ou filtrar determinadas mensagens pelo nome da tag no Android studio, vá para a janela LogCat => Editar configuração do filtro e digite o seguinte em "pela tag de log (regex):"
Observe que não há espaços, isso é importante
fonte
^(?!tag1)
^(?!.*(WindowManager|dalvik|Environment|DataRouter|AlarmManager)).*$
Isso excluirá textos com conteúdo WindowManager, dalvik, ...
tag:^(?!.*(WindowManager|dalvik|Environment|DataRouter|AlarmManager)).*$
Isso excluirá as tags WindowManager, dalvik, ... do logcat
fonte
^(?!(WifiMulticast|WifiHW|MtpService|PushClient|EGL_emulation|OpenGl*|InputReader|art|dalvik|Environment|DataRouter|AlarmManager|WindowManager|PhoneStatusBar|ActivityManager|ResourceType|PackageManager|gralloc*))
No shell, você pode usar um comando como:
que incluirá todos os logs além daqueles com as tags
AlarmManagerService
ePowerManagerService
.(
:S
Significa "silencioso", o que significa que nada será impresso para essas tags;:V
significa "verboso", o que significa que tudo será impresso para todas as outras tags. A documentação do Android para logcat possui mais detalhes de outras opções que você pode usar em os filtros.)Você também pode usar a
ANDROID_LOG_TAGS
variável de ambiente para configurar filtros padrão, por exemplo (no bash):fonte
S
é para 'silencioso'. Atualizei a resposta para explicar isso, como você sugere.Combine visuais positivos e negativos para uma filtragem mais poderosa.
Exemplo:
Marcas nos primeiros parênteses aninhados estão incluídas.
Tags no segundo são excluídas.
fonte
Aqui está uma lista de filtros que eu tenho usado para ignorar os logs do sistema Samsung . também funcionaria com outros dispositivos.
fonte
Uma maneira fácil de fazer isso é filtrar apenas as tags que você deseja ver.
Irá exibir apenas essas tags.
fonte
Na visualização Eclipse Logcat, não existe essa opção. No entanto, você pode usar o nível de log para excluir qualquer mensagem cujo nível de log seja muito baixo. Por exemplo. configurá-lo para I (nfo) não exibe as mensagens D (ebug) e (V) erbose.
fonte