拿来主义而已 直接看源码
方式一:
import android.util.Log;
/**
* Created by Administrator on 2018/8/8.
*/
public class LogUtil {
public static void PrintD(String content, Object... args) {
for (int i = 0; i < Thread.currentThread().getStackTrace().length; i++) {
String realContent = getContent(content, i, args);
Log.d("default", realContent);
}
}
public static void PrintD(String tag, String content, Object... args) {
Log.d(tag, getContent(content, 4, args));
}
private static String getNameFromTrace(StackTraceElement[] traceElements, int place) {
StringBuilder taskName = new StringBuilder();
if (traceElements != null && traceElements.length > place) {
StackTraceElement traceElement = traceElements[place];
taskName.append(traceElement.getMethodName());
taskName.append("(").append(traceElement.getFileName()).append(":").append(traceElement.getLineNumber()).append(")");
}
return taskName.toString();
}
private static String getContent(String msg, int place, Object... args) {
try {
String sourceLinks = getNameFromTrace(Thread.currentThread().getStackTrace(), place);
return sourceLinks + String.format(msg, args);
} catch (Throwable throwable) {
return msg;
}
}
}
调用
LogUtil.PrintD("Exception", e.getMessage());
方式二:
Log.e("Exception", "============================================================");
StackTraceElement[] ste = e.getStackTrace();
for (int i = 1; i < ste.length; i++) {
String msg = "Class:" + ste[i].getClassName() + ", Line: " + ste[i].getLineNumber() + ", MethodName:" + ste[i].getMethodName();
Log.e("Exception", msg);
}
Log.e("Exception", "============================================================");
参考文章 :
Android打印日志,实现快速定位源代码 ——大头呆
Android 从StackTraceElement反观Log库 —— 鸿洋_