对于LOG的处理

一般我们在开发的过程中,会有调试阶段,这个时候需要一些自己的Log打印。但是在正式发布的时候我们又不希望自己的这些打印被别人获取到。于是我们需要设计一个LogUtils类来简单处理这一问题。

当然Log的类型很多,设计的也可以很复杂。那么就不一一列举了。说个最简单的封装方法。

public class LogUtils {
    public static boolean LogSwitch = true;
    //更改后的设计:public static boolean LogSwitch = BuildConfig.CUSTOMIZED_VERSION;

    public static void showLog(String tag, String value) {
        if (LogSwitch) {
            Log.i(tag, value);
        }
    }

    public static void showLog(String value) {
        if (LogSwitch) {
            Log.i("amugaoyuanma", value);
        }
    }
}

在编译正式的发布的版本的时候,就把LogSwitch = false,为false把开关关闭。还可以通过类似配置处理来处理避免忘记打开或者关闭开关。

BuildConfig.CUSTOMIZED_VERSION获取值来处理。

release {
    minifyEnabled false
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    buildConfigField 'String','CUSTOMIZED_VERSION','"common"'
}
advanced {
    buildConfigField 'String','CUSTOMIZED_VERSION','"advanced"'
}
debug {
    buildConfigField 'String','CUSTOMIZED_VERSION','"debug"'
}

这个只能解决开发中的调试的相关问题,比如你自己与后台的数据请求打印。还有其它类型的Log,使用这个过滤就不行。比如崩溃了打堆栈信息。这个就力不从心。自己也可以添加相关的功能。

比如你想添加一些比较复杂的Log,还有设计捕获这个apk的异常。你可以使用一些三方的工具,bugly这样的工具。万一有一天boss不想用这些东西,你是不是就没有手段了?答案肯定不是的。

还有对应用进行监控:

这些都是作为参考和启发的。当然一般的应用开发是不需要设计这么多。对于一些特殊的需求类的,可能还是会设计这些,以便让程序保持更好的性能和持续优化。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值