AndroidLog类的封装

安卓的log是个很方便的调试手段。但是Log多了以后就会很明显的下面很乱。有的时候我们要控制打log的tag没有设置好的话,没有办法正则匹配的话就没有办法来控制这些log的过滤,这个问题很多时候让我很头疼特别是以前使用eclipse的时候默认只显示5000条数据的时候。让寡人真的是想自杀的心都有。

见过一些log的封装类,但是一只没有达到我心目中的要求。
所以自己写了下面的东西来满足自己的要求吧。
首先我的log工具类要有下面这几个功能

  • 正常的log的功能。(这是废话)
  • 黑名单过滤模式。 (去掉那些我不想看的tag)
  • 白名单保留模式。(只留存我想要看的tag)
  • 关闭模式。 (全都木有)

    然后我们来看看要怎么实现吧(下面的列子只有log.d)


public class LogUtil {
    //方便下面的方法不需要每次都传Tag
    private static String Tag = "默认的Tag值";
    //当前的模式   
    public static State state =State.DEFAULT;

    //需要的log模式
    //分辨是默认,白名单,黑名单,关闭
    public enum State {
        DEFAULT, WHITE, BLACK,CLOSE
    }
    //这个就是不需要传tag的d方法
public static void d(String msg) {
            d(Tag, msg);
    }
    public static void d(String tag,String msg) {
        if (msg==null) {
        //万一需要打的log值为null
            Log.d(tag,"null");
        }else {
            if (state == State.DEFAULT) { 
            //正常模式
                Log.d(tag, msg);
            } else if (state == State.WHITE) {
            //白名单模式
            if (inWhiteList(tag)) {
                Log.d(tag, msg);
            }   
            } else if (state == State.BLACK) {
            //黑名单模式
                if (!inBlackList(tag)) {
                    Log.d(tag, msg);
                }
            }else {

            }
        }

    }
}
    private static boolean inWhiteList(String temp) {
        //保存白名单tag的list
        ArrayList<String> tag_list = new ArrayList<String>();

        return tag_list.contains(temp);
    }

    private static boolean inBlackList(String temp) {
        //保存白名单tag的黑名单的
        ArrayList<String> tag_list = new ArrayList<String>();

        return tag_list.contains(temp);
    }

我们要启动黑白名单时,只需将需要处理的tag值丢到对应的list中就可以了。
然后将 public static State state =State.DEFAULT;
更改为对应的模式菜单即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值