在开发中,我们通常要对日志的输出做统一管理,下面就为大家推荐一个日志输出类,在开发阶段只需将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 + " "); } else { sb.append(e + " "); } if (sts != null && sts.length > 0) { for (StackTraceElement st : sts) { if (st != null) { sb.append("[ " + st.getFileName() + ":" + st.getLineNumber() + " ] "); } } } android.util.Log.e(TAG, sb.toString()); } } }