package com.yuantiku.yyl.helper; import android.util.Log; /** * @author lirui * @date 15/4/29. */ public class L { private L() {} public static void v(Object... m) { log(Log.VERBOSE, join(m), null); } public static void w(Object... m) { log(Log.WARN, join(m), null); } public static void d(Object... m) { log(Log.DEBUG, join(m), null); } public static void i(Object... m) { log(Log.INFO, join(m), null); } public static void e(Object... m) { log(Log.ERROR, join(m), null); for (Object o : m) { if (o instanceof Exception) { log(Log.ERROR, null, (Throwable) o); } } } private static void log(int level, String content, Throwable throwable) { String tag = getTagName(); switch (level) { case Log.ASSERT: Log.e(tag, content); break; case Log.INFO: Log.i(tag, content); break; case Log.DEBUG: Log.d(tag, content); break; case Log.WARN: Log.w(tag, content); break; case Log.VERBOSE: Log.v(tag, content); break; case Log.ERROR: Log.e(tag, content, throwable); break; default: Log.wtf(tag, content, throwable); } } private static String getTagName() { StackTraceElement caller = Thread.currentThread().getStackTrace()[5]; String tag = "%s.%s(L:%d)"; String callerClazzName = caller.getClassName(); callerClazzName = callerClazzName.substring(callerClazzName.lastIndexOf(".") + 1); tag = String.format(tag, callerClazzName, caller.getMethodName(), caller.getLineNumber()); return tag; } private static String join(Object[] arr) { if (arr == null || arr.length == 0) { return ""; } StringBuffer sb = new StringBuffer(); for (Object o : arr) { sb.append(String.valueOf(o)); } return sb.toString(); } }