Google源码 -- 打Log新技巧

本文介绍了谷歌工程师在Android项目中使用的统一日志记录方法。通过一个简单的MusicLog类,实现不同级别的日志输出,并利用静态变量DEBUG控制日志开关,方便在debug和release版本间切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导语

 最近,开始阅读 Google 源码,看看大牛们写的代码哪些是写的好的,可以借鉴到自己的项目下。我发现谷歌工程师在打Log日志,都是统一的写法。今天,就先来分享一下他们的日志代码是怎么写的 。

1先上源码

    package com.android.music;
    import android.os.Debug;
    public class MusicLog {    
      private static final boolean DEBUG = true;    
      public static void v(String tag, String msg) {        
       if(DEBUG) {
            android.util.Log.v(tag, msg);
        }
    }    
       public static void v(String tag, String msg, Throwable tr) {        
       if(DEBUG) {
            android.util.Log.v(tag, msg, tr);
        }
    }    
       public static void d(String tag, String msg) {        
       if(DEBUG) {
            android.util.Log.d(tag, msg);
        }
    }    
       public static void d(String tag, String msg, Throwable tr) {        
       if(DEBUG) {
            android.util.Log.d(tag, msg, tr);
        }
    }    
       public static void i(String tag, String msg) {        
       if(DEBUG) {
            android.util.Log.i(tag, msg);
        }
    }    
       public static void i(String tag, String msg, Throwable tr) {        
       if(DEBUG) {
            android.util.Log.i(tag, msg, tr);
        }
    }    
       public static void w(String tag, String msg) {        
       if(DEBUG) {
            android.util.Log.w(tag, msg);
        }
    }    
       public static void w(String tag, String msg, Throwable tr) {        
       if(DEBUG) {
            android.util.Log.w(tag, msg, tr);
        }
    }    
       public static void w(String tag, Throwable tr) {        
       if(DEBUG) {
            android.util.Log.w(tag, tr);
        }
    }    
       public static void e(String tag, String msg) {        
       if(DEBUG) {
            android.util.Log.e(tag, msg);
        }
    }    
       public static void e(String tag, String msg, Throwable tr) {        
       if(DEBUG) {
            android.util.Log.e(tag, msg, tr);
        }
    }

}

2如何使用

private static final String LOGTAG = "LyricListView";
MusicLog.d(LOGTAG, "mAdapter.getCount = " + mAdapter.getCount());
MusicLog.e(LOGTAG, "SET LYRIC ERROR:" + e.getMessage());

3分析这样写的好处

上面代码,我们通过  private static final boolean DEBUG = true ; 我们可以统一的控制 log 的输出和关闭。如果采用这种方式打印日志信息,我们就可以在 debug 的版本中输出 log,而在 release 版本中关闭 log 的输出 。这样防止自己的软件信息被泄露出去 。而且,如果采用这种方式,是不是会觉得代码的打印日志信息的格式更简单更美观更统一呢。现在得到了个打印 Log 新技能,还不赶紧用到自己项目上去吗?

4总结

今天的 Google 源码阅读,先讲这个简单又实用的打印 Log 日志方法,我个人感觉是挺好用的 。下次继续分享优秀源码,欢迎继续关注本公众号。

本文属于原创,如有转载,请标注原作者,版权归本公众号所有。如果你喜欢我写的文章请关注 程序IT圈  ,欢迎大家继续关注本公众号的技术博文。如果您觉得这篇文章对你有所帮助的话,不妨点个赞或给个赞赏哈,您的支持就是我坚持原创的动力~~

最后,如果你想写公众号和热爱编程的朋友们,我建立了个技术微信群,可以公众号回复 "加群" ,欢迎您进群学习哈~

iOS专属通道

推荐阅读

 

福利篇:学习编程视频免费领取

邀您免费加入到程序猿小密圈

五大步骤快速搭建个人网站

程序IT圈

长按下面识别二维码关注

编程技术|科技资讯|IT资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程IT圈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值