482 Stimmen

LogCat filtern, um nur die Nachrichten von My Application in Android zu erhalten?

Ich habe festgestellt, dass ich bei der Verwendung von Logcat mit Eclipse mit ADT für Android auch Meldungen von vielen anderen Anwendungen erhalte. Gibt es eine Möglichkeit, dies zu filtern und nur Meldungen von meiner eigenen Anwendung anzuzeigen?

1voto

Ahmed Hegazy Punkte 12021

Ich habe versucht, die Antwort von Tom Mulcahy zu verwenden, aber leider funktionierte sie nicht für Anwendungen mit mehreren Prozessen, so dass ich sie an meine Bedürfnisse angepasst habe.

#!/bin/bash
if [ "$#" -ne 1 ]; then echo "Illegal number of parameters"; exit 1; fi
echo "Lof for package name: $1"
PROCESSES=`adb shell ps | grep "$1" | cut -c10-15`
NUM_OF_PROCESSES=`echo "$PROCESSES" | wc -l`
if [ $NUM_OF_PROCESSES -eq 0 ]; then echo "The application is not running!"; exit 1; fi
COUNTER=1
for process in $PROCESSES; do
        if [ $COUNTER -eq 1 ]; then GREP_TEXT="("; fi
        GREP_TEXT+=$process
        if [ $COUNTER -eq $NUM_OF_PROCESSES ]; then GREP_TEXT+=")"; else GREP_TEXT+="|"; fi
        let COUNTER=COUNTER+1 
        if [ $COUNTER -gt $NUM_OF_PROCESSES ]; then break; fi  
done
adb logcat | grep -E "$GREP_TEXT"

1voto

Alex Shevelev Punkte 565

Für Windows können Sie mein PowerShell-Skript verwenden, um Meldungen nur für Ihre Anwendung anzuzeigen: https://github.com/AlShevelev/power_shell_logcat

0voto

Eyni Kave Punkte 719

Windows CMD

Ein Beispiel: Der Name Ihres Anwendungspakets lautet: com.nader.chat

cd C:\Users\[your-username]\AppData\Local\Android\Sdk\platform-tools
adb shell logcat *:E | findstr /c:"at com.nader.chat"

enter image description here

  • :E nur Erros aus den Protokollen herausfiltern, können Sie es ersetzen durch V : Ausführlich (niedrigste Priorität) , D : Debuggen , I : Info , W : Warnung , F : Tödlich .
  • unter um Fehler nur in Ihrem geschriebenen Quellcode zu finden, nicht aber in anderen verwandten Modulen

0voto

ls.illarionov Punkte 731

Eine weitere Variante von Gavriels applog.sh mit Unterstützung von mehreren Geräten und Anwendungen mit mehreren Prozessen:

#!/bin/sh
PKG=$1
shift

APPIDS=`adb $@ shell ps | awk -v PKG="$PKG" '
    (NR == 1){appcolumn=2; for (i=1; i<=NF; i++) if ($i=="PID") {appcolumn=i}}
    index($0,PKG){print $(appcolumn)}' | paste -d \| -s`

echo "PID's: $APPIDS"
adb $@ logcat -v color | awk  "(\$3 ~ /$APPIDS/){print \$0}"

Verwendung: applog.sh com.example.my.package [-s <specific device>]

0voto

In intelliJ (und wahrscheinlich auch in eclipse) können Sie die logcat-Ausgabe nach Text filtern Webansicht Es druckt also im Grunde alles, was Phonegap produziert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X