web-dev-qa-db-fra.com

Comment exécuter logcat sur plusieurs appareils?

Comment puis-je exécuter logcat sur plusieurs appareils en même temps? La commande "adb logcat" donne une erreur:

error: more than one device and emulator
42
Kostas

Utilisez le -s option de adb:

adb -s <serialnumber>

Exemple

C:\Users\lel>adb devices
List of devices attached
192.168.198.101:5555    device
0123456789ABCDEF        device

adb -s 0123456789ABCDEF logcat
adb -s 192.168.198.101:5555 logcat

Vous pouvez combiner grep avec ceci, pour obtenir toutes les lignes qui le contiennent.
un exemple est avec System.out

Exemple:

 adb -s 192.168.198.101:5555 logcat | grep "System.out"
76
levis501

J'ai pensé que cela pourrait être utile. J'ai ce script qui m'aide beaucoup. Il enregistre chaque appareil dans un fichier différent. Pour arrêter la journalisation, appuyez simplement sur CTRL + C.

#! /bin/bash

devices=`adb devices | grep 'device$' | cut -f1`
pids=""

for device in $devices
do
    log_file="$device-`date +%d-%m-%H:%M:%S`.log"
    echo "Logging device $device to \"$log_file\""
    adb -s $device logcat -v threadtime > $log_file &
    pids="$pids $!"
done

echo "Children PIDs: $pids"

killemall()
{
    echo "Killing children (what a shame...)"

    for pid in $pids
    do
        echo "Killing $pid"
        kill -TERM $pid
    done
}

trap killemall INT

wait
10
Gustavo Meira

Utilisez l'ip de votre appareil:
adb -s device_ip:5555

0
pbaranski