Filtrar a saída no logcat por tagname


151

Estou tentando filtrar a saída do logcat de um dispositivo real (não um emulador) pelo nome da tag, mas recebo todas as mensagens que são um spam. Eu só quero ler mensagens do navegador que devem ser algo como "browser: " ou "webkit: ", mas não funciona ... Aqui está o que eu recebo:

saída real

Respostas:


294

usa isto:

adb logcat -s "TAGNAME"

7
Obrigado! O código acima é equivalente ao adb logcat *: s 'tagname'
munch

3
Como posso filtrar OUT um <tagname>?
Arunabh Das

Acredito que a única maneira de filtrar é por níveis. Por exemplo, se algum aplicativo estiver enviando spam para depuração, defina o nível de logcat para mostrar apenas informações e níveis mais altos: logcat *: I
Alguém em algum lugar

1
É possível usar acima com -f filename? Digamos, meu cenário é filtrar os logs por TagName e despejar em um arquivo de texto.
Duende verde 07/03

9
Das - "adb logcat TAGNAME: s" exibirá uma tag barulhenta.
Don Parque

56

Caso alguém se depare com isso como eu, você pode filtrar várias tags adicionando uma vírgula no meio, assim:

adb logcat -s "browser","webkit"

Explique onde devo colocar esse código. Eu sou uma nova abelha. Por favor, explique
Zar E Ahmer

1
@Nepster Digite isso no terminal.
async

Se você usa o cygwin no Windows, pode usar o grep ... e sim, isso funciona.
Sgupta

12

Outra opção é definir os níveis de log para tags específicas:

adb logcat SensorService: S PowerManagerService: S NfcService: S power: I Sensores: E

Se você deseja apenas definir os níveis de log para algumas tags, é possível fazê-lo tag por tag.


9

Não dependa do shell do ADB, apenas trate (o adb logcat) uma saída linux normal e depois faça o pip:

$ adb shell logcat | grep YouTag
# just like: 
$ ps -ef | grep your_proc 

5
Essa é uma péssima escolha, pois é enviado muito tráfego desnecessário e o filtro obviamente não funciona. Se um processo não relacionado registrar uma mensagem que contenha alguma string, ela aparecerá.
John Smith

and the filter obviously won't work, você tentou? Eu colei e colei minha resposta de acordo com o resultado.
Siwei Shen

1
A pergunta era para janelas, onde grep não está disponível
sroskelley

1
Se você usa o cygwin no Windows, pode usar o grep ... e sim, isso funciona.
precisa saber é o seguinte

6

Aqui está como eu crio uma tag:

private static final String TAG = SomeActivity.class.getSimpleName();
 Log.d(TAG, "some description");

Você poderia usar getCannonicalName

Aqui eu tenho os seguintes filtros TAG:

  • qualquer (*) Visualização - VERBOSE
  • qualquer atividade (*) - VERBOSE
  • qualquer tag começando com Xyz (*) - ERRO
  • System.out - SILENT (desde que eu estou usando Log no meu próprio código)

Aqui o que eu digito no terminal:

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.