Google源码 -- 打Log新技巧

导语

最近,开始阅读 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 日志方法,我个人感觉是挺好用的 。下次继续分享优秀源码,欢迎继续关注本公众号。

(0)

相关推荐