1. 程式人生 > >自定義Log工具

自定義Log工具

/**
 * @author zhou.jn on 2018/11/27 17:22.
 */

public class SLog {
    private static final String TAG_FILTER = "_Util";
    //第二種方法控制Log輸出。
    public static final boolean IS_DEBUG = false;
    public static final int VERBOSE = 2;
    public static final int DEBUG = 3;
    public static final int INFO =
4; public static final int WARN = 5; public static final int ERROR = 6; public static final int ASSERT = 7; public static int mLevel = 0; public static int getmLevel() { return mLevel; } public static void setmLevel(int mLevel) { SLog.mLevel = mLevel; }
public static void v(String tag, String msg) { if (mLevel <= VERBOSE) { Log.v(tag + TAG_FILTER, msg); } } public static void i(String tag, String msg) { if (mLevel <= INFO) { Log.i(tag + TAG_FILTER, msg); } } public
static void e(String tag, String msg) { if (mLevel <= ERROR) { Log.e(tag + TAG_FILTER, msg); } } public static void d(String tag, String msg) { if (mLevel <= DEBUG) { Log.d(tag + TAG_FILTER, msg); } } public static void w(String tag, String msg) { if (mLevel <= WARN) { Log.w(tag + TAG_FILTER, msg); } } public static void a(String tag, String msg) { if (mLevel <= ASSERT) { Log.wtf(tag + TAG_FILTER, msg); } } }

自定義Log的好處

  1. 控制Log的輸出。在開發階段,需要列印大量的Log,但釋出版本時需要將Log去掉,不能一行一行的去除Log,使用自定義Log,在需要隱藏Log的時候,只需要將設定:SLog.setLevel()調高可以顯示的Log的等級,這樣,低於level的Log則不會被列印。(或者用Boolean 型別的 isDebug做標記也可以)
  2. 建議採用控制Log輸出的第二種方法:使用Boolean型別去判斷是否,在自定義的Log上面新增一個布林型別標誌位,在每次使用的時候,進行判斷後再使用,這樣,當產生大量的日誌時,可以避免產生Log中的字串,直接在使用Log前就進行判斷。缺點:在使用的時候就會要多寫一些程式碼,但可以通過配置Android的列印Log的快捷鍵來優化使用時的不便。
		//在使用的時候增加了一行判斷程式碼
       if (SLog.IS_DEBUG){
            SLog.v(TAG, "stop");
         }

在這裡插入圖片描述