仅仅使用命令行如何根据包名来过滤 logcat - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhwguest
V2EX    Android

仅仅使用命令行如何根据包名来过滤 logcat

  •  
  •   zhwguest 2023-07-05 15:06:31 +08:00 12034 次点击
    这是一个创建于 911 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我现在是根据 pidof 命令获取对应包名为进程名的进程 pid ,然后用 logcat --pid 来过滤。

    但是这样有两个问题:

    1 ) app 重启后,pid 发生改变,我必须重新运行 logcat ;

    1. 有的 app 有多个 process ,pidof 只能获取同包名的进程,仅一个进程能打印出。

    请教大神直接根据包名过滤的方法。

    16 条回复    2023-07-09 09:49:06 +08:00
    dullwit
        1
    dullwit  
       2023-07-05 15:22:51 +08:00
    Masoud2023
        2
    Masoud2023  
       2023-07-05 16:12:22 +08:00
    没做过安卓开发,安卓那个 busybox 有 grep 和 xargs 之类的工具吗?

    或许可以组合一个命令出来?
    winzkh
        3
    winzkh  
       2023-07-05 16:43:48 +08:00   1
    @Masoud2023 #2 安卓没有 busybox ,用的是 toybox
    LLaMA2
        4
    LLaMA2  
       2023-07-05 17:47:44 +08:00
    但你输入 logcat 实际上等于 logcat *:D
    如果你要所有的日志那就 logcat *:V
    这里的*是你在 anroid 中 log 制定的 tag ,*通配所有,如过还要根据 packgename 做 filter
    那就


    logcat *:V | grep "我的包名"
    vyronlee
        5
    vyronlee  
       2023-07-05 19:04:39 +08:00 via iPhone
    1 楼的 pidcat ,好用又美观
    rekulas
        6
    rekulas  
       2023-07-05 21:04:30 +08:00
    pidcat win10 测试可用 但感觉日志似乎还是不全
    riverskyfang
        7
    riverskyfang  
       2023-07-06 12:52:06 +08:00
    把 uid 打印出来,然后根据 uid 过滤
    behindeye
        8
    behindeye  
       2023-07-06 13:58:54 +08:00
    要把 uid 打印,跟进 uid 来过滤
    zhwguest
        9
    zhwguest  
    OP
       2023-07-06 22:36:26 +08:00
    @dullwit 这个没看出来比 pidof 命令对我的需求有多大帮助啊,这难道不也是先得到 pid ,然后过滤么。先拿到 Pid 再用 pid 过滤就会有 pid 变更或者不完整的问题啊。

    @Masoud2023 我现在就是用的一个组合命令 adb logcat --pid=$(adb shell pidof com.xxx.yyy),我的问题不是如何获取 Pid ,而是使用 Pid 有天生的缺陷,它不持久和唯一;

    @ye4tar 我用 logcat *:V 并没有看到输出 package name ,我的 adb 版本是 Version 34.0.1-9680074

    @riverskyfang @behindeye 谢谢,uid 相对于 pid 来说,的确是持久化和唯一化的,是非常好的参数。但是您说的打印 uid 是指可以通过 adb 的参数来打印还是说要通过修改程序?我还不知道如何打印出来
    dullwit
        10
    dullwit  
       2023-07-07 07:59:11 +08:00 via iPhone
    @zhwguest pidcat 命令后面只需要跟 package ,就算重启 app 变化 pid 也没关系,也能正常获取日志
    zhwguest
        11
    zhwguest  
    OP
       2023-07-07 10:06:18 +08:00
    @dullwit 感谢,我试一下
    behindeye
        12
    behindeye  
       2023-07-07 11:45:54 +08:00
    @zhwguest
    adb shell pm list packages -U |grep com.android.bluetooth ,这个命令可以过滤出你的应用的 uid ;
    然后 adb logcat --uid 10181 过滤日志
    zhwguest
        13
    zhwguest  
    OP
       2023-07-07 14:27:28 +08:00
    @behindeye 感谢,但是我用--uid 提示:

    ```
    logcat: Unknown option '--uid'.
    ```
    riverskyfang
        14
    riverskyfang  
       2023-07-08 17:26:12 +08:00   1
    @zhwguest
    adb logcat -v threadtime,uid
    zhwguest
        15
    zhwguest  
    OP
       2023-07-09 09:46:32 +08:00
    @riverskyfang 好用,感谢~~~
    SupperMary
        16
    SupperMary  
       2023-07-09 09:49:06 +08:00
    打 log 的时候用相同的 tag 打出来,可以 logcat -s your_tag 这样看
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2344 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 04:23 PVG 12:23 LAX 20:23 JFK 23:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86