#android #adb #log #logcat

bin+lib pidcat

adb logcat 包装和过滤器

2 个版本

0.2.1 2023 年 6 月 2 日
0.2.0 2023 年 5 月 31 日
0.1.0 2023 年 5 月 27 日

#468Unix API

每月 31 次下载

MIT 许可证

575KB
857

pidcat

在 Android 应用程序开发过程中,我们经常只想显示我们自己的应用程序当前的日志信息。遗憾的是,由于进程 ID 每次部署到手机上都会改变,难道不是在寻找一个可以解决这个问题日志过滤工具吗?

pidcat 的全部功能就是通过匹配应用程序包来过滤应用程序日志。然后你可以享受更便捷的开发过程。

以下是一个示例。

pidcat toor

ScreenShot

通过源代码安装终端

首先安装 rust 环境

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

下载源代码

git clone https://github.com/borneygit/pidcat.git
cd pidcat

然后使用 cargo 安装 pidcat

cargo install --path .

通过 brew 安装终端

brew tap borneygit/brew
brew install borneygit/brew/pidcat

如何使用终端

pidcat --help

A logcat colored command which displays only source entries for processes of a specific application package.

Usage: pidcat [OPTIONS] [process]...

Arguments:
  [process]...
          Name of the process to be filtered

Options:
  -t, --tag <tag>
          The tag filter patterns

      --tag-width <tag_width>
          Set the tag show width. must >= 10
          [default: 20]

  -v, --revert-match <revert>
          Selected lines are those not matching any of the specified patterns.

  -b, --buffer <buffer>
          The buffer to filter
          [default: main system]
          [possible values: main, system, crash, radio, events, all]

  -c, --clear
          Clear (flush) the entire log and exit

  -l, --level <level>
          Filter log level
          [default: V]
          Possible values:
          - V: Verbose
          - D: Debug
          - I: Info
          - W: Warning
          - E: Error
          - F: Fatal

  -o, --output <output>
          Writing logs to a file

      --color <color>
          Display in highlighted color to match priority
          [default: auto]
          [possible values: auto, always, never]

  -i, --ignore-case
          Ignore case

  -s <device>
          Use device with given serial

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version

通过 crate 使用

在 Cargo.toml 中添加依赖

[dependencies]
pidcat="0.2.0"

您可以使用以下代码捕获 adb logcat 日志并根据您的需要进行两次处理

use futures::StreamExt;
use pidcat::LogStream;
use pidcat::source::*;

#[tokio::main]
async fn main() {
    let source = ADBSource::new(None);

    let mut logs: LogStream = source.source().await;

    while let Some(r) = logs.next().await {
        if let Ok(log) = r {
            println!("{}", log);
        }
    }
}

感谢

https://github.com/JakeWharton/pidcat
https://github.com/flxo/rogcat

依赖项

~9–20MB
~285K SLoC