Android开发日志统一管理_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > Android开发日志统一管理

Android开发日志统一管理

 2015/5/7 15:12:07  祁连山  程序员俱乐部  我要评论(0)
  • 摘要:在开发中,我们通常要对日志的输出做统一管理,下面就为大家推荐一个日志输出类,在开发阶段只需将DEBUG常量设为true,生产环境将DEBUG设为false即可控制日志的输出。啥都不说了,需要的朋友直接带走。packagecom.android.util;/***日志输出统一管理**@author祁连山*@date2015-04-27*@version1.0**/publicclassLog{privatestaticfinalStringTAG="com.android.app"
  • 标签:android 开发 Android开发

在开发中,我们通常要对日志的输出做统一管理,下面就为大家推荐一个日志输出类,在开发阶段只需将DEBUG常量设为true,生产环境将DEBUG设为false即可控制日志的输出。啥都不说了,需要的朋友直接带走。

package com.android.util;

/**
 * 日志输出统一管理
 * 
 * @author 祁连山
 * @date 2015-04-27
 * @version 1.0
 * 
 */
public class Log {

    private static final String TAG = "com.android.app";
    private static final boolean DEBUG = true;

    private static String getFunctionName() {
        StackTraceElement[] sts = Thread.currentThread().getStackTrace();
        if (sts == null) {
            return null;
        }
        for (StackTraceElement st : sts) {
            if (st.isNativeMethod()) {
                continue;
            }
            if (st.getClassName().equals(Thread.class.getName())) {
                continue;
            }
            if (st.getClassName().equals(Log.class.getName())) {
                continue;
            }
            return "[" + Thread.currentThread().getName() + "(" + Thread.currentThread().getId() + "): " + st.getFileName() + ":" + st.getLineNumber() + "]";
        }
        return null;
    }

    private static String createMessage(String msg) {
        String functionName = getFunctionName();
        String message = (functionName == null ? msg : (functionName + " - " + msg));
        return message;
    }

    public static void i(String msg) {
        if (DEBUG) {
            String message = createMessage(msg);
            android.util.Log.i(TAG, message);
        }
    }

    public static void v(String msg) {
        if (DEBUG) {
            String message = createMessage(msg);
            android.util.Log.v(TAG, message);
        }
    }

    public static void d(String msg) {
        if (DEBUG) {
            String message = createMessage(msg);
            android.util.Log.d(TAG, message);
        }
    }

    public static void e(String msg) {
        if (DEBUG) {
            String message = createMessage(msg);
            android.util.Log.e(TAG, message);
        }
    }

    public static void w(String msg) {
        if (DEBUG) {
            String message = createMessage(msg);
            android.util.Log.w(TAG, message);
        }
    }

    public static void e(Exception e) {
        if (DEBUG) {
            StringBuffer sb = new StringBuffer();
            String name = getFunctionName();
            StackTraceElement[] sts = e.getStackTrace();

            if (name != null) {
                sb.append(name + " - " + e + "\r\n");
            } else {
                sb.append(e + "\r\n");
            }
            if (sts != null && sts.length > 0) {
                for (StackTraceElement st : sts) {
                    if (st != null) {
                        sb.append("[ " + st.getFileName() + ":" + st.getLineNumber() + " ]\r\n");
                    }
                }
            }
            android.util.Log.e(TAG, sb.toString());
        }
    }
}

 

  • 相关文章
发表评论
用户名: 匿名