jar 包有个 log 方法如何过滤或者屏蔽 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
diy886
V2EX    Android

jar 包有个 log 方法如何过滤或者屏蔽

  •  
  •   diy886 2023-09-15 15:24:42 +08:00 11899 次点击
    这是一个创建于 764 天前的主题,其中的信息可能已经有所发展或是发生改变。

    第三方的读 nfc 卡 jar 包有个方法疯狂打印日志

     private void setLog(String content) { Log.d("T2OReader", content); } 

    也没有给其他方法关闭日志

    因为要开线程循环读卡,有没有读到数据他自己都打印日志,一开起来直接刷屏

    有没有办法把他过滤或者蔽,debug 模式的时候直接 return 也行

    20 条回复    2023-09-19 16:05:21 +08:00
    jorneyr
        1
    jorneyr  
       2023-09-15 15:26:35 +08:00   1
    Java Agent 修改执行逻辑。
    ShineyWang
        2
    ShineyWang  
       2023-09-15 15:39:25 +08:00
    java 我不怎么熟,之前弄 spring 的时候用了 GELF 搜集日志到 Seq 里面
    https://docs.datalust.co/docs/using-gelf

    然后在 seq 里面 filter 筛选的
    qwerthhusn
        3
    qwerthhusn  
       2023-09-15 15:39:26 +08:00   1
    非常简单,把那个类的源码拷贝出来,然后在代码目录里面创建这个类,把代码贴进去,然后就可以自由修改了。
    当类加载器加载那个类的时候,肯定会读取你自己编译的这个类。

    比如你这里可以直接把调用日志的那个类复制出来建一份,然后修改 setLog 方法不让其写日志。

    也可以直接把 Log 类弄出来,修改 d 方法,直接把日志功能废掉
    TArysiyehua
        4
    TArysiyehua  
       2023-09-15 15:45:39 +08:00
    用 apt , 凡是执行到这个方法,就直接 return
    TArysiyehua
        5
    TArysiyehua  
       2023-09-15 15:45:54 +08:00
    说错了,是 aop ,切片
    hidemyself
        6
    hidemyself  
       2023-09-15 15:49:20 +08:00
    看下 LOG 怎么实现的,一般这种日志框架都可以配置的吧
    c2const
        7
    cconst  
       2023-09-15 15:58:56 +08:00
    都有三方的 jar 包了,直接反编译把那行删了 :)
    vvtf
        8
    vvtf  
       2023-09-15 16:13:16 +08:00
    自己重写那个类, 然后编译好, 使用`jar -u`替换
    ```bash

    jar -uvf xxx.jar com/xxx/aa/Log.class

    ```
    Kenyore
        9
    Kenyore  
       2023-09-15 16:24:31 +08:00
    楼上的是不是都不知道 logback 可以配置指定类的日志级别或者关闭日志
    TArysiyehua
        10
    TArysiyehua  
       2023-09-15 16:29:19 +08:00
    @Kenyore 你说的 logback 是个啥玩意?又不是每个 log 都用这个玩意实现的。。。
    lakehylia
        11
    lakehylia  
       2023-09-15 16:32:27 +08:00
    解开 jar ,搜关键字,然后删掉打印日志那部分的代码,重新打包 jar
    HangoX
        12
    HangoX  
       2023-09-15 16:38:54 +08:00
    用 jdex ,打开 jar ,修改,然后导出
    cubecube
        13
    cubecube  
       2023-09-15 16:40:58 +08:00
    @Kenyore Log.d 明显就是自己包装的一个实现。
    hyperos
        14
    hyperos  
       2023-09-15 16:43:03 +08:00   1
    @cubecube #13 这个帖子分类不是 Android 吗,所以这应该是安卓自带的 log 类,
    DefoliationM
        15
    DefoliationM  
       2023-09-15 18:25:26 +08:00 via Android
    Java agent 给重写了
    Hyseen
        16
    Hyseen  
       2023-09-15 18:32:24 +08:00
    用 agent 重写这个方法
    maokabc
        17
    maokabc  
       2023-09-16 01:57:03 +08:00 via Android
    .class 文件用 java asm 把方法清空,.dex 的话用 dexlib2
    SupperMary
        18
    SupperMary  
       2023-09-16 23:47:57 +08:00
    adb shell 进去之后,setprop persist.log.tag.T2OReader F
    试一下看有没有用
    diy886
        19
    diy886  
    OP
       2023-09-18 17:55:29 +08:00
    用了#3 的方法可行,但是居然还有一个 UsbDeviceConnectionJNI 的日志也在输出
    搜了一圈发现直接在 logcat 里选中文字后右键"Fold Lines Like this"就行了..
    4kingRAS
        20
    4kingRAS  
       2023-09-19 16:05:21 +08:00
    logcat 屏蔽不就行了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2502 人在线   最高记录 6679       Selct Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 05:46 PVG 13:46 LAX 22:46 JFK 01:46
    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