你的位置:首页 > 操作系统

[操作系统]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());    }  }}