您的位置:首页 > 移动开发 > Android开发

android 定制自己的log工具类

2015-07-31 11:41 309 查看
[code]package com.monitor.common;

import android.util.Log;

public class LevelLogUtils {

    // android.util.Log常用的方法有以下5个:
    // Log.v() ,Log.d() ,Log.i() ,Log.w() ,Log.e()
    // 按照日志级别从高到低为ERROR, WARN, INFO, DEBUG, VERBOSE.至于日志级别本身的含义.
    //
    // 下面是对各种日志级别的输出介绍:
    //
    //  1、Log.v 的输出颜色为黑色的,输出大于或等于VERBOSE日志级别的信息
    //
    //  2、Log.d的输出颜色是蓝色的,输出大于或等于DEBUG日志级别的信息
    //
    //  3、Log.i的输出为绿色,输出大于或等于INFO日志级别的信息
    //
    //  4、Log.w的输出为橙色, 输出大于或等于WARN日志级别的信息
    //
    //  5、Log.e的输出为红色,仅输出ERROR日志级别的信息.

    private static final int VERBOSE = 1;
    private static final int DEBUG = 2;
    private static final int INFO = 3;
    private static final int WARN = 4;
    private static final int ERROR = 5;
    private static final int NOLOG = 6;

    private static final int LEVEL = VERBOSE; // app log's level

    private static LevelLogUtils levelLog;

    private LevelLogUtils(){

    }

    public static LevelLogUtils getInstance(){
        if (levelLog == null) {
            synchronized (LevelLogUtils.class) {
                if (levelLog == null) {  
                    levelLog = new LevelLogUtils();  
                }  
            }
        }
        return levelLog;
    }

    public void v(String tag, String msg) {
        if (LEVEL <= VERBOSE) {
            Log.v(tag, msg);
        }
    }

    public void d(String tag, String msg) {
        if (LEVEL <= DEBUG) {
            Log.d(tag, msg);
        }
    }

    public void i(String tag, String msg) {
        if (LEVEL <= INFO) {
            Log.i(tag, msg);
        }

    }

    public  void w(String tag, String msg) {
        if (LEVEL <= WARN) {
            Log.w(tag, msg);
        }
    }

    public  void e(String tag, String msg) {
        if (LEVEL <= ERROR) {
            Log.e(tag, msg);
        }
    }
}


修改常量LEVEL的值,可以控制哪些级别的Log被打印出来。

本类是单例模式

[code]public static LevelLogUtils getInstance(){
        if (levelLog == null) {
            synchronized (LevelLogUtils.class) {
                if (levelLog == null) {  
                    levelLog = new LevelLogUtils();  
                }  
            }
        }
        return levelLog;
    }


getInstance()方法用了Double-Check Locking
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: