Java tutorial
//package com.java2s; public class Main { private static final String TAG = "treasure_hunter"; private static final String TAG_TRACE = "method_trace"; /** * The debug flag is cached here so that we don't need to access the settings every time we have to evaluate it. */ private static boolean isDebug = true; private static final boolean logTrace = true; public static void trace(Object object) { if (logTrace) { StackTraceElement[] traces = Thread.currentThread().getStackTrace(); StackTraceElement trace = traces[3]; android.util.Log.d(TAG_TRACE, addThreadInfo(object.getClass().getSimpleName() + " : " + trace.getMethodName())); } } public static void d(final String msg) { if (isDebug) { android.util.Log.d(TAG, addThreadInfo(msg)); } } public static void d(final String msg, final Throwable t) { if (isDebug) { android.util.Log.d(TAG, addThreadInfo(msg), t); } } private static String addThreadInfo(final String msg) { final String threadName = Thread.currentThread().getName(); final String shortName = threadName.startsWith("OkHttp") ? "OkHttp" : threadName; return "[" + shortName + "] " + msg; } }