Android中如何关闭Log

来源:互联网 发布:编写软件 编辑:程序博客网 时间:2024/05/19 20:38

Android.util.Log常用的方法有以下5个:Log.v() Log.d() Log.i() Log.w() 以及 Log.e() 。根据首字母对应VERBOSE,

DEBUG,INFO, WARN,ERROR。

1、Log.v 的调试颜色为黑色的,任何消息都会输出,这里的v代表verbose啰嗦的意思,平时使用就是Log.v("","");

2、Log.d的输出颜色是蓝色的,仅输出debug调试的意思,但他会输出上层的信息,过滤起来可以通过DDMS的Logcat标签来选择.

3、Log.i的输出为绿色,一般提示性的消息information,它不会输出Log.v和Log.d的信息,但会显示i、w和e的信息

4、Log.w的意思为橙色,可以看作为warning警告,一般需要我们注意优化android代码,同时选择它后还会输出Log.e的信息。

5、Log.e为红色,可以想到error错误,这里仅显示红色的错误信息,这些错误就需要我们认真的分析,查看栈的信息了。


      开发过程中在程序中有打了很多的log,以方便调试程序,当初项目组内每个人打log的方式也没有统一。项目结项正式发布程序时需要关闭log,删掉肯定不行,统一修改也挺麻烦的。今天在网上搜索了一下,找到了三种方法:

方法一:

在Application中设置一个全局的标记,例如:public static final boolean DEBUG=true;

if (DEBUG) {

    Log.d(LOG_TAG, "Something");

}

需要关闭log时,只需将DEBUG的值改为false。

该方法的缺点为:每次打log都需要添加if进行判断。


方法二:

在proguard.cfg文件中加入

-assumenosideeffects class android.util.Log {  

     public static *** d(...);  

     public static *** v(...);  



方法三:

自动写一个日志类,以取代android.util.Log类:

import android.content.Context;

import android.util.Log;

import android.widget.Toast;


public class DebugUtil {

    public static final boolean DEBUG = true;

     

    public static void toast(Context context,String content) {

        Toast.makeText(context, content, Toast.LENGTH_SHORT).show();

    }

    

    public static void v(String tag,String msg) {

        if (DEBUG) {

            Log.v(tag, msg);

        }

    }

     

    public static void d(String tag,String msg) {

        if (DEBUG) {

            Log.d(tag, msg);

        }

    }

    

    public static void i(String tag,String msg) {

        if (DEBUG) {

            Log.i(tag, msg);

        }

    }

    

    public static void w(String tag,String msg) {

        if (DEBUG) {

            Log.w(tag, msg);

        }

    }

    

    public static void e(String tag,String msg) {

        if (DEBUG) {

            Log.e(tag, msg);

        }

    }    

}

需要import该类,使用的时候将以往的Log.d(**,**)变为DebugUtil.d(**,**)即可。

将DEBUG的值设为false时可以关闭所有log,假如需要开启w和e级别的log,只需将DebugUtil类对应w和e方法中的if语句去掉。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 斗地主没痘了怎么办 熹妃q传金币不够用怎么办 苹果手机玩王者卡怎么办 苹果6玩王者荣耀卡怎么办 苹果macbook开不了机怎么办 苹果7震动像拖拉机一样怎么办 win10笔记本玩lol卡怎么办 苹果笔记本密码忘了怎么办 苹果笔记本系统密码忘记了怎么办 qq加好友频繁了怎么办 淘宝买食品有问题怎么办 手机的设置图标没有了怎么办 国家创业贷款还不了会怎么办 手机mac显示:不好使.怎么办? 英雄联盟买皮肤重复怎么办 皮肤很油毛孔又粗怎么办 笔记本电脑玩英雄联盟卡怎么办 win10系统更新不动了怎么办 win7任务栏时间没了怎么办 win10桌面图标都没了怎么办 win10软件图标没了怎么办 电脑内存插板没用了怎么办 win10笔记本开不了机怎么办 cad复制东西变卡怎么办 企业网银证书过期怎么办 游戏更新网页无法正常打开怎么办 网页游戏打开说脚本错误怎么办 电脑玩游戏出现闪屏怎么办 玩游戏时出现窗口化怎么办 玩游戏时出现输入不支持怎么办 电脑玩游戏出现蓝屏怎么办 谷歌商店网页版进不去怎么办 谷歌商店为什么打不开怎么办 玩lol突然卡顿怎么办 手机上路由器管理页面打不开怎么办 苹果电脑开机页面密码打不开怎么办 逆战活动页面打不开怎么办 电脑玩lol网络卡怎么办 ios11.4qq闪退怎么办 ios11.3qq闪退怎么办 英雄联盟进入游戏界面黑屏怎么办