• Android教程-02 在程序中输出Log


    视频教程,建议采用超清模式观看



    在Android中一般都用Log输出日志,常见的有5个不同的级别

    • Log.v()
    • Log.d()
    • Log.i()
    • Log.w()
    • Log.e()
    当然很多程序员还比较习惯用System.out.println() 去输出日志,这种方式其实没有任何优势可言。建议大家放弃。

    输出日志很简单,怎么控制日志的输出就值得研究下了,日志是用来调试程序的,当程序发布的时候日志就变得一无是处了。所以输出日志的原则就是:
    程序开发阶段允许输出日志,发布阶段不允许打印日志。
    如何去控制呢?如果你在上线前手动的删除所有日志,这个工作量就是很大了,一般情况下我们都是创建一个LogUtils工具类
    public class LogUtils {
        public static final boolean DEBUG=true;
    
        public static void i(String tag,String msg){
            if(DEBUG) {
                Log.i(tag, msg);
            }
        }
    }
    

    用LogUtils中的方法去输出日志
     LogUtils.i("MainActivity","info");
    这样我们就可以通过LogUtils中DEBUG变量去控制日志的输出,当程序调试的时候我们把这个值改为true,程序发布了,就把这个值改成false。这样就可以实现我们一开始的需求。

    然而,这样的话,我们还需要在发布前夕手动的去改代码,能不能在发布前不改代码呢?这时候我们就要借助Gradle了,Android Studio集成了Gradle,这一点非常棒.我们需要打开app/build.gradle这个文件,做一个配置
        buildTypes {
            debug{ //  开发阶段
                buildConfigField "String", "API_URL",""http://test.example.com/api"" //定义了字符串变量
                buildConfigField "boolean", "LOG_CALLS", "true"   //  定义了boolean变量 true
    
            }
            release { // 发布了
                buildConfigField "boolean", "LOG_CALLS", "false"
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    我们可以在buildType中配置一些全局变量,可以是String类型如“API_URL”,也可以是boolean,这里我们用到的就是LOG_CALLS这一个变量,注意一点debug{ ...} 这个指的是程序开发阶段,release{ } 指的是程序发布阶段。我们在开发和发布阶段分别定义了对应不同值的LOG_CALLS,接下来我们就可以在LogUtils中使用这个全局变量了。
    public class LogUtils {
        public static final boolean DEBUG=BuildConfig.LOG_CALLS;
    
        public static void i(String tag,String msg){
            if(DEBUG) {
                Log.i(tag, msg);
            }
        }
    }
    其中BuildConfig.LOG_CALLS就是我们在上面定义的变量,这个变量在开发阶段是true,发布阶段自动的就变成了false。我们这样就干了一个一劳永逸的事了。

  • 相关阅读:
    c语言中 fgetc函数、fputc函数实现文件的复制
    c语言 13-7 利用fgetc函数输出文件的字符数
    c语言 13-6 利用fgetc函数输出文件的行数
    c语言中fgetc函数:显示文件内容
    c语言 13-5
    c语言 获取程序上一次运行时间的程序
    hzwer模拟赛 虫洞
    LYDSY热身赛 escape
    bzoj2330 糖果
    繁华模拟赛 Vicent坐电梯
  • 原文地址:https://www.cnblogs.com/hehe520/p/6329915.html
Copyright © 2020-2023  润新知