--- name: android_logcat kind: function lang: bash domain: infra version: "1.0.0" purity: impure signature: "android_logcat([--serial ] [--package ] [--level ] [--lines ] [--clear])" description: "Lee logcat del device/emulador, opcionalmente filtrado por package y nivel. Multi-emulator via --serial." tags: [android, adb, logcat, wsl] uses_functions: ["adb_wsl_bash_infra"] uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: [] params: - name: "--serial " desc: "Optional target device/emulator serial. Default: first device detected." - name: "--package " desc: "Filter by app package (resolves PID via adb shell pidof)" - name: "--level " desc: "Min log level V/D/I/W/E/F, default I" - name: "--lines " desc: "Dump last N lines and exit. Default: follow indefinidamente" - name: "--clear" desc: "Clear log buffer before reading" output: "Logcat output a stdout. Follow indefinido sin --lines. Exit 130 si Ctrl-C. Exit 2 si --package y el proceso no corre." tested: false tests: [] test_file_path: "" file_path: "bash/functions/infra/android_logcat.sh" --- ## Ejemplo ```bash # Follow completo sin filtros android_logcat # Solo logs de una app, nivel Warning y superior android_logcat --package com.example.myapp --level W # Dump de las últimas 200 líneas y salir android_logcat --lines 200 # Limpiar buffer y hacer follow solo de errores de la app android_logcat --clear --package com.example.myapp --level E ``` ## Notas - Resuelve `adb` o `adb.exe` en PATH (compatible con WSL2 usando el binario Windows). - `--package` usa `adb shell pidof -s` para obtener el PID actual. Si la app no está corriendo, sale con exit 2. - `--lines N` activa modo dump (`-d -t N`); sin él, el follow es indefinido hasta Ctrl-C (exit 130). - `--clear` ejecuta `adb logcat -c` antes de leer, descartando el buffer acumulado. - El filtro de nivel se aplica como `*:` al final del comando logcat. - En follow mode, `trap INT TERM` garantiza exit limpio (exit 130) al interrumpir. - CR (`\r`) del output de `adb.exe` en WSL se limpia al resolver el PID.